[Bug 30489] "SmartDeviceMonitor" client/admin installers from RICOH hang due to advapi32.RegSetKeySecurity being a stub

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Apr 20 17:14:57 CDT 2012


http://bugs.winehq.org/show_bug.cgi?id=30489

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |focht at gmx.net
          Component|-unknown                    |advapi32
            Summary|Can't install               |"SmartDeviceMonitor"
                   |"SmartDeviceMonitor for     |client/admin installers
                   |Admin" from ricoh           |from RICOH hang due to
                   |                            |advapi32.RegSetKeySecurity
                   |                            |being a stub

--- Comment #2 from Anastasius Focht <focht at gmx.net> 2012-04-20 17:14:57 CDT ---
Hello,

this seems to be the first installer/app that really expects setting registry
security to work.
If you search for "RegSetKeySecurity" there are others in bugzilla that
continue despite the stub.

Affects both downloads, "SmartDeviceMonitor" for Client 8.9.4.0 and
"SmartDeviceMonitor" for Admin 8.2.1.0

--- snip ---
002c:Call KERNEL32.LoadLibraryExA(00937528
"C:\\users\\focht\\Temp\\{E5EEF599-4C83-4FF7-A0E1-DBC396F86E9F}\\{C138D676-4F0F-4FDE-8BE5-26CFD3566DCD}\\PMCEnd.dll",00000000,00000000)
ret=007e3a8f
002c:Ret  KERNEL32.LoadLibraryExA() retval=022b0000 ret=007e3a8f 
...
002c:Call KERNEL32.GetProcAddress(022b0000,00dd3ad0 "SetRegSecurity")
ret=00ab1c4d
002c:Ret  KERNEL32.GetProcAddress() retval=022b1600 ret=00ab1c4d
...
002c:Call advapi32.RegOpenKeyExA(80000002,00dd3b80
"Software\\RICOH\\PMG\\Client",00000000,000f003f,00318b54) ret=022b166f
002c:Ret  advapi32.RegOpenKeyExA() retval=00000000 ret=022b166f
002c:Call KERNEL32.lstrcpyA(003180f4,022b9050 "Everyone") ret=022b1462
002c:Ret  KERNEL32.lstrcpyA() retval=003180f4 ret=022b1462
002c:Call
advapi32.AllocateAndInitializeSid(00317684,00000001,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,0031768c)
ret=022b1801
002c:Ret  advapi32.AllocateAndInitializeSid() retval=00000001 ret=022b1801
002c:Call
advapi32.LookupAccountSidA(00000000,0127b7f8,003180f4,00317680,00317694,0031789c,00317690)
ret=022b1861
002c:Ret  advapi32.LookupAccountSidA() retval=00000001 ret=022b1861
002c:Call advapi32.CopySid(00000208,00317ee8,0127b7f8) ret=022b187e
002c:Ret  advapi32.CopySid() retval=00000001 ret=022b187e
002c:Call advapi32.FreeSid(0127b7f8) ret=022b188b
002c:Ret  advapi32.FreeSid() retval=00000000 ret=022b188b
002c:Call advapi32.RegGetKeySecurity(0000021c,00000004,003178c4,003178b8)
ret=022b150e
002c:Ret  advapi32.RegGetKeySecurity() retval=00000000 ret=022b150e
002c:Call
advapi32.GetSecurityDescriptorDacl(003178c4,003178a4,00318b38,003178a0)
ret=022b195a
002c:Ret  advapi32.GetSecurityDescriptorDacl() retval=00000001 ret=022b195a
002c:Call advapi32.InitializeAcl(00318920,00000208,00000002) ret=022b1a5d
002c:Ret  advapi32.InitializeAcl() retval=00000001 ret=022b1a5d
002c:Call KERNEL32.LoadLibraryA(022b90b0 "advapi32.dll") ret=022b1c98
002c:Ret  KERNEL32.LoadLibraryA() retval=7eb00000 ret=022b1c98
002c:Call KERNEL32.GetProcAddress(7eb00000,022b90c0 "AddAccessAllowedAceEx")
ret=022b1caa
002c:Ret  KERNEL32.GetProcAddress() retval=7eb0ab88 ret=022b1caa
002c:Call
advapi32.AddAccessAllowedAceEx(00318920,00000002,00000001,10000000,00317ee8)
ret=022b1cc8
002c:Ret  advapi32.AddAccessAllowedAceEx() retval=00000001 ret=022b1cc8
002c:Call KERNEL32.FreeLibrary(7eb00000) ret=022b1d0c
002c:Ret  KERNEL32.FreeLibrary() retval=00000001 ret=022b1d0c
002c:Call advapi32.InitializeSecurityDescriptor(0031850c,00000001) ret=022b1995
002c:Ret  advapi32.InitializeSecurityDescriptor() retval=00000001 ret=022b1995
002c:Call
advapi32.SetSecurityDescriptorDacl(0031850c,00000001,00318920,00000000)
ret=022b19b6
002c:Ret  advapi32.SetSecurityDescriptorDacl() retval=00000001 ret=022b19b6
002c:Call KERNEL32.LoadLibraryA(022b9080 "advapi32.dll") ret=022b1c25
002c:Ret  KERNEL32.LoadLibraryA() retval=7eb00000 ret=022b1c25
002c:Call KERNEL32.GetProcAddress(7eb00000,022b9090
"SetSecurityDescriptorControl") ret=022b1c37
002c:Ret  KERNEL32.GetProcAddress() retval=7eb0cf28 ret=022b1c37
002c:Call advapi32.SetSecurityDescriptorControl(0031850c,00000400,00000400)
ret=022b1c5a
002c:Ret  advapi32.SetSecurityDescriptorControl() retval=00000001 ret=022b1c5a
002c:Call KERNEL32.FreeLibrary(7eb00000) ret=022b1c79
002c:Ret  KERNEL32.FreeLibrary() retval=00000001 ret=022b1c79
002c:Call advapi32.RegSetKeySecurity(0000021c,00000004,0031850c) ret=022b15d5
002c:fixme:reg:RegSetKeySecurity :(0x21c,4,0x31850c): stub
002c:Ret  advapi32.RegSetKeySecurity() retval=00000000 ret=022b15d5
...
002c:Call advapi32.RegGetKeySecurity(0000021c,00000004,003178c4,003178b8)
ret=022b150e
002c:Ret  advapi32.RegGetKeySecurity() retval=00000000 ret=022b150e
002c:Call
advapi32.GetSecurityDescriptorDacl(003178c4,003178a4,00318b38,003178a0)
ret=022b195a
002c:Ret  advapi32.GetSecurityDescriptorDacl() retval=00000001 ret=022b195a 
...
<endless looping>
--- snip ---

RegGetKeySecurity -> GetSecurityDescriptorDacl -> DACL present? -> no -> loop
again, trying to set registry security and reading DACL back.

Source:
http://source.winehq.org/git/wine.git/blob/e4cb946c4aef0375a1f94a9167db0fe95dbbb014:/dlls/advapi32/registry.c#l2382

--- snip ---
2396 LSTATUS WINAPI RegSetKeySecurity( HKEY hkey, SECURITY_INFORMATION
SecurityInfo,
2397                                PSECURITY_DESCRIPTOR pSecurityDesc )
2398 {
2399     TRACE("(%p,%d,%p)\n",hkey,SecurityInfo,pSecurityDesc);
2400 
2401     /* It seems to perform this check before the hkey check */
2402     if ((SecurityInfo & OWNER_SECURITY_INFORMATION) ||
2403         (SecurityInfo & GROUP_SECURITY_INFORMATION) ||
2404         (SecurityInfo & DACL_SECURITY_INFORMATION) ||
2405         (SecurityInfo & SACL_SECURITY_INFORMATION)) {
2406         /* Param OK */
2407     } else
2408         return ERROR_INVALID_PARAMETER;
2409 
2410     if (!pSecurityDesc)
2411         return ERROR_INVALID_PARAMETER;
2412 
2413     FIXME(":(%p,%d,%p): stub\n",hkey,SecurityInfo,pSecurityDesc);
2414 
2415     return ERROR_SUCCESS;
2416 }
--- snip ---

Regards

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list