From: Jeffrey Altman Date: Tue, 10 Aug 2004 05:07:58 +0000 (+0000) Subject: 1-3-70-release-really-20040809 X-Git-Tag: BP-disconnected~292 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=2e8a3050d39ead364cad038647f0049b5c03b119;p=packages%2Fo%2Fopenafs.git 1-3-70-release-really-20040809 Restore the installation of afslogon.dll as a winlogon event handler. Microsoft identified the problem as being a newly added restriction on the behavior of DllMain entry points. Network operations such as bind() may no longer be called. The ICF blocks them but does not cause an error to be returned. --- diff --git a/doc/txt/winnotes/afs-changes-since-1.2.txt b/doc/txt/winnotes/afs-changes-since-1.2.txt index 73eb647a2..e4210af32 100644 --- a/doc/txt/winnotes/afs-changes-since-1.2.txt +++ b/doc/txt/winnotes/afs-changes-since-1.2.txt @@ -1,10 +1,4 @@ Since 1.3.66: - * The WinLogon Event Handlers for "Startup" and "Logoff" have been - removed at the very last moment due to problems caused with the - final release version of XP SP2. This means that tokens will - not be destroyed on logoff. The code is not being removed it - is simply not going to be enabled. - * file and directory names beginning with "." will now be given the hidden attribute when the volume access is anonymous. this matches the behavior when the volume access is via an authenticated user. @@ -137,7 +131,8 @@ Since 1.3.65: user's profile is not loaded from within AFS. If the profile was loaded from AFS we can't release the tokens since the Logoff event is triggered prior to the profile being written back to - the its source location. + the its source location. This is now performed in an XP SP2 + safe manner. * Windows XP SP2 Internet Connection Firewall interoperability has been added. diff --git a/doc/txt/winnotes/afs-install-notes.txt b/doc/txt/winnotes/afs-install-notes.txt index 1ed4d042d..69799bf5d 100644 --- a/doc/txt/winnotes/afs-install-notes.txt +++ b/doc/txt/winnotes/afs-install-notes.txt @@ -318,18 +318,7 @@ unless the user's profile was loaded from an AFS volume. In this situation there is no mechanism to determine when the profile has been successfully written back to the network. It is therefore unsafe to release the user's tokens. - -Note: This functionality has been disabled in the 1.3.70 installers due -to problems discovered with the final release build of XP SP2. To enable -this functionality on other versions of Windows the following registry -entries should be added: - - REG_DWORD HKLM "Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" "Asynchronous" 0 - REG_DWORD HKLM "Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" "Impersonate" 1 - REG_SZ HKLM "Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" "DLLName" "afslogon.dll" - REG_SZ HKLM "Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" "Logoff" "AFS_Logoff_Event" - REG_SZ HKLM "Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" "Startup" "AFS_Startup_Event" - + 23. Terminal Server installations. When installing under Terminal Server, you must execute the NSIS installer diff --git a/doc/txt/winnotes/afs-issues.txt b/doc/txt/winnotes/afs-issues.txt index 784e23bfb..8d4e27303 100644 --- a/doc/txt/winnotes/afs-issues.txt +++ b/doc/txt/winnotes/afs-issues.txt @@ -196,4 +196,3 @@ List of unfunded projects: afsmap.exe [/PERSISTENT] afsmap.exe [/PERSISTENT] afsmap.exe /DELETE - 23. Fix/Identify cause of WinLogon event handler problems with XP SP2 Gold diff --git a/src/WINNT/afsd/smb3.c b/src/WINNT/afsd/smb3.c index 8abd38215..396859821 100644 --- a/src/WINNT/afsd/smb3.c +++ b/src/WINNT/afsd/smb3.c @@ -1932,11 +1932,11 @@ long smb_ReceiveV3Tran2A(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp) } /* now copy the parms and data */ - if ( parmCount != 0 ) + if ( asp->totalParms > 0 && parmCount != 0 ) { memcpy(((char *)asp->parmsp) + parmDisp, inp->data + parmOffset, parmCount); } - if ( dataCount != 0 ) { + if ( asp->totalData > 0 && dataCount != 0 ) { memcpy(asp->datap + dataDisp, inp->data + dataOffset, dataCount); } @@ -1945,7 +1945,10 @@ long smb_ReceiveV3Tran2A(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp) asp->curParms += parmCount; /* finally, if we're done, remove the packet from the queue and dispatch it */ - if (asp->totalData <= asp->curData && asp->totalParms <= asp->curParms) { + if (asp->totalParms > 0 && + asp->curParms > 0 && + asp->totalData <= asp->curData && + asp->totalParms <= asp->curParms) { /* we've received it all */ lock_ObtainWrite(&smb_globalLock); osi_QRemove((osi_queue_t **) &smb_tran2AssemblyQueuep, &asp->q); diff --git a/src/WINNT/install/NSIS/OpenAFS.nsi b/src/WINNT/install/NSIS/OpenAFS.nsi index b54551b22..658a9e68d 100644 --- a/src/WINNT/install/NSIS/OpenAFS.nsi +++ b/src/WINNT/install/NSIS/OpenAFS.nsi @@ -708,18 +708,12 @@ skipremove: strcpy $REG_DATA_3 "RpcSs" Call RegWriteMultiStr -!ifdef WINLOGON ; WinLogon Event Notification - ; Disabled because of last minute problems with the XP SP2 release final build - ; we are disabling the use of this functionality WriteRegDWORD HKLM "Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" "Asynchronous" 0 WriteRegDWORD HKLM "Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" "Impersonate" 1 WriteRegStr HKLM "Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" "DLLName" "afslogon.dll" WriteRegStr HKLM "Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" "Logoff" "AFS_Logoff_Event" WriteRegStr HKLM "Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" "Startup" "AFS_Startup_Event" -!else - DeleteRegKey HKLM "Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\AfsLogon" -!endif SetRebootFlag true diff --git a/src/WINNT/install/wix/files.wxi b/src/WINNT/install/wix/files.wxi index 70ffc6517..041187751 100644 --- a/src/WINNT/install/wix/files.wxi +++ b/src/WINNT/install/wix/files.wxi @@ -3,8 +3,6 @@ - - -