STABLE14-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.


(cherry picked from commit 2e8a3050d3)
This commit is contained in:
Jeffrey Altman 2004-08-10 05:10:44 +00:00 committed by Derrick Brashear
parent 60858a97cc
commit 9e1bc019b9
6 changed files with 15 additions and 29 deletions

View File

@ -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.

View File

@ -312,13 +312,6 @@ Admin Protocol which provides browsing of server and share information.
This significantly enhances the interoperability of AFS volumes within the
Explorer Shell and Microsoft Office applications.
22. OpenAFS will now automatically forget a user's tokens upon Logoff
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
@ -331,6 +324,13 @@ entries should be added:
REG_SZ HKLM "Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" "Startup" "AFS_Startup_Event"
22. OpenAFS will now automatically forget a user's tokens upon Logoff
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.
23. Terminal Server installations.
When installing under Terminal Server, you must execute the NSIS installer
(.exe) from within the Add/Remove Programs Control Panel. Failure to do so

View File

@ -196,4 +196,3 @@ List of unfunded projects:
afsmap.exe <drive> <afs-path> [/PERSISTENT]
afsmap.exe <drive> <unc-path> [/PERSISTENT]
afsmap.exe <drive> /DELETE
23. Fix/Identify cause of WinLogon event handler problems with XP SP2 Gold

View File

@ -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);

View File

@ -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

View File

@ -3,8 +3,6 @@
<Directory Id="SystemFolder">
<Component Id="cmf_afslogon_DLL" Guid="123197FE-4F53-4035-8D51-FCFB6B50A777">
<File Id="fileafslogon_DLL" Name="afslogon.dll" LongName="afslogon.dll" KeyPath="yes" DiskId="1" src="$(var.ClientDir)afslogon.dll" />
<!--
Disable the WinLogon registration for now. It's causing problems on XP SP2 machines.
<Registry Id="reg_afslogon01" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" Action="createKeyAndRemoveKeyOnUninstall" />
<Registry Id="reg_afslogon02" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" />
<Registry Id="reg_afslogon03" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" Name="Asynchronous" Type="integer" Value="0" />
@ -12,9 +10,6 @@
<Registry Id="reg_afslogon05" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" Name="DLLName" Type="string" Value="[#fileafslogon_DLL]" />
<Registry Id="reg_afslogon06" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" Name="Logoff" Type="string" Value="AFS_Logoff_Event" />
<Registry Id="reg_afslogon07" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" Name="Startup" Type="string" Value="AFS_Startup_Event" />
-->
<!-- instead, remove the key if present -->
<Registry Id="reg_afslogonrem" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" Action="removeKeyOnInstall" />
</Component>
<?ifdef DebugSyms?>
<Component Id="cmp_ClientSystemDebug" Guid="DD34DA09-D9DA-4A5A-9521-87B7738A7D53">