[Bug 49078] New: Sennheiser Wireless Systems Manager 4.4 server (.NET 4.5 app) crashes with 'System.ComponentModel.Win32Exception: Unknown error (0x80090308)'

WineHQ Bugzilla wine-bugs at winehq.org
Sat May 2 10:05:44 CDT 2020


https://bugs.winehq.org/show_bug.cgi?id=49078

            Bug ID: 49078
           Summary: Sennheiser Wireless Systems Manager 4.4 server (.NET
                    4.5 app) crashes with
                    'System.ComponentModel.Win32Exception: Unknown error
                    (0x80090308)'
           Product: Wine
           Version: 5.7
          Hardware: x86-64
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: secur32
          Assignee: wine-bugs at winehq.org
          Reporter: focht at gmx.net
      Distribution: ---

Hello folks,

as it says. You need to work around bug 49076 ("Sennheiser Wireless Systems
Manager 4.4 installer overwrites Wine builtin "system/os" dlls, causing broken
WINEPREFIX (SfcIsFileProtected is a stub)") to fix the WINEPREFIX after
installation.

Download:

https://web.archive.org/web/20200502103749/http://sennheiser-sites.com/responsive-manuals/WSM/Sennheiser_WSM_Setup_4.4.6.6.exe

Prerequisite: 'winetricks -q dotnet45'

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files (x86)/Sennheiser/Wireless Systems
Manager

$ WINEDEBUG=+seh,+relay,+loaddll,+process,+secur32,+ntlm wine ./WSM.exe
>>log.txt 2>&1
...
00c8:Call KERNEL32.CreateProcessW(00000000,03ece868 L"\"C:\\Program Files
(x86)\\Sennheiser\\Wireless Systems
Manager\\WSMServerBinaries\\WSM.Server.exe\"
",00000000,00000000,00000001,08000400,00000000,00000000,0031f7f4,03ecbc10)
ret=6711d6b5
...
00c8:warn:process:CreateProcessInternalW (L"C:\\Program Files
(x86)\\Sennheiser\\Wireless Systems
Manager\\WSMServerBinaries\\WSM.Server.exe",...): ignoring some flags in
8000400 
...
00c8:trace:process:CreateProcessInternalW started process pid 00e4 tid 00e8
...
00c8:Ret  KERNEL32.CreateProcessW() retval=00000001 ret=6711d6b5 
...
--- snip ---

First call of 'InitializeSecurityContextW' (ntlm auth):

--- snip ---
...
00e8:Call secur32.InitializeSecurityContextW(0021e128,00000000,021dd75c
L"http/localhost",00020800,00000000,00000000,00000000,00000000,021df460,021df3d8,021dd8d0,0021e120)
ret=64474db2c56 
...
00e8:trace:secur32:InitializeSecurityContextW 0x21e128 (nil) L"http/localhost"
0x00020800 0 0 (nil) 0 0x21df460 0x21df3d8 0x21dd8d0 0x21e120
...
00e8:trace:ntlm:ntlm_InitializeSecurityContextW 0x1d51b20 (nil)
L"http/localhost" 0x00020800 0 0 (nil) 0 0x21dd80 0x21df3d8 0x21dd8d0 0x21e120
00e8:trace:ntlm:ntlm_InitializeSecurityContextW Setting SECURITY_NETWORK_DREP
...
00e8:trace:ntlm:ntlm_InitializeSecurityContextW First time in ISC()
...
00e8:Call advapi32.CredReadW(01d7ae80 L"localhost",00000002,00000000,0021db00)
ret=7f1c15c86283 
...
00e8:Ret  advapi32.CredReadW() retval=00000000 ret=7f1c15c86283 
...
00e8:trace:ntlm:ntlm_InitializeSecurityContextW using cached credentials
00e8:trace:ntlm:fork_helper "ntlm_auth" "ntlm_auth"
"--helper-protocol=ntlmssp-client-1" "--username=focht" "--use-cached-creds" 
...
00e8:trace:ntlm:run_helper In helper: sending "OK"
00e8:trace:ntlm:read_line Creating a new buffer for the helper
...
00e8:trace:ntlm:read_line offset = 0, size = 200
00e8:trace:ntlm:read_line read_size = 20, read: "BH Command expected\n "
00e8:trace:ntlm:read_line offset_len is calculated from 0x1d4ef74 - 0x1d4ef74
00e8:trace:ntlm:run_helper In helper: received "BH Command expected"
00e8:trace:ntlm:preserve_unused offset_len = 0
00e8:trace:ntlm:preserve_unused helper->com_buf_offset was set to: 0
00e8:trace:ntlm:ntlm_InitializeSecurityContextW Sending to helper: "OK"
00e8:trace:ntlm:run_helper In helper: sending "OK"
00e8:trace:ntlm:read_line offset = 0, size = 200
00e8:trace:ntlm:read_line read_size = 20, read: "BH Command expected\n "
00e8:trace:ntlm:read_line offset_len is calculated from 0x1d4ef74 - 0x1d4ef74
00e8:trace:ntlm:run_helper In helper: received "BH Command expected"
00e8:trace:ntlm:preserve_unused offset_len = 0
00e8:trace:ntlm:preserve_unused helper->com_buf_offset was set to: 0
00e8:trace:ntlm:ntlm_InitializeSecurityContextW Helper returned "BH Command
expected"
00e8:trace:ntlm:run_helper In helper: sending "YR"
00e8:trace:ntlm:read_line offset = 0, size = 200
00e8:trace:ntlm:read_line read_size = 60, read: "YR xxx==\ns"
00e8:trace:ntlm:read_line offset_len is calculated from 0x1d4ef9c - 0x1d4ef9c
00e8:trace:ntlm:run_helper In helper: received "YR xxx=="
00e8:trace:ntlm:preserve_unused offset_len = 0
00e8:trace:ntlm:preserve_unused helper->com_buf_offset was set to: 0
00e8:trace:ntlm:ntlm_InitializeSecurityContextW YR xxx==
00e8:trace:ntlm:decodeBase64 in_len: 56
00e8:trace:ntlm:ntlm_GetTokenBufferIndex 0x21df3d8 
...
00e8:Ret  secur32.InitializeSecurityContextW() retval=00090312 ret=64474db2c56
...
--- snip ---

--- snip ---
...
00e8:Call
secur32.AcceptSecurityContext(0021e168,00000000,021dff18,00000800,00000000,021dffe0,021dff38,021de8e8,0021e160)
ret=64474db7dd7
00e8:trace:secur32:AcceptSecurityContext 0x21e168 (nil) 0x21dff18 2048 0
0x21dffe0 0x21dff38 0x21de8e8 0x21e160
00e8:trace:ntlm:ntlm_AcceptSecurityContext 0x1d36130 (nil) 0x21dff18 2048 0
0x21de10 0x21dff38 0x21de8e8 0x21e160
...
00e8:trace:ntlm:ntlm_AcceptSecurityContext Using SECURITY_NETWORK_DREP
00e8:trace:ntlm:fork_helper "ntlm_auth" "ntlm_auth"
"--helper-protocol=squid-2.5-ntlmssp" 
...
00e8:trace:ntlm:ntlm_AcceptSecurityContext Server set want_flags: "SF
NTLMSSP_FEATURE_SESSION_KEY"
00e8:trace:ntlm:run_helper In helper: sending "SF NTLMSSP_FEATURE_SESSION_KEY"
00e8:trace:ntlm:read_line Creating a new buffer for the helper
...
00e8:trace:ntlm:read_line offset = 0, size = 200
00e8:trace:ntlm:read_line read_size = 3, read: "OK\n\x01"
00e8:trace:ntlm:read_line offset_len is calculated from 0x1d2f683 - 0x1d2f683
00e8:trace:ntlm:run_helper In helper: received "OK"
00e8:trace:ntlm:preserve_unused offset_len = 0
00e8:trace:ntlm:preserve_unused helper->com_buf_offset was set to: 0
00e8:trace:ntlm:encodeBase64 bytes is 54, pad bytes is 2
00e8:trace:ntlm:ntlm_AcceptSecurityContext Client sent: "YR xxx=="
00e8:trace:ntlm:run_helper In helper: sending "YR xxx=="
00e8:trace:ntlm:read_line offset = 0, size = 200
00e8:trace:ntlm:read_line read_size = 200, read: "TT xxx"
00e8:trace:ntlm:read_line offset = 200, size = 200
...
00e8:trace:ntlm:read_line Resizing buffer!
00e8:trace:ntlm:read_line read_size = 16, read: "xxx=\n\x18"
00e8:trace:ntlm:read_line offset_len is calculated from 0x1d00678 - 0x1d00678
00e8:trace:ntlm:run_helper In helper: received "TT xxx="
00e8:trace:ntlm:preserve_unused offset_len = 0
00e8:trace:ntlm:preserve_unused helper->com_buf_offset was set to: 0
00e8:trace:ntlm:ntlm_AcceptSecurityContext Reply from ntlm_auth: "TT xxx="
00e8:trace:ntlm:decodeBase64 in_len: 212
...
00e8:Ret  secur32.AcceptSecurityContext() retval=00090312 ret=64474db7dd7
...
--- snip ---

Second call of 'InitializeSecurityContextW' (ntlm auth):

--- snip ---
...
00e8:Call secur32.InitializeSecurityContextW(0021e128,0021e1e0,021dd75c
L"http/localhost",00020800,00000000,00000000,021e0948,00000000,021df460,021e0968,021dd8d0,0021e120)
ret=64474db2c56
...
00e8:trace:secur32:InitializeSecurityContextW 0x21e128 0x21e1e0
L"http/localhost" 0x00020800 0 0 0x21e0948 0 0x21df460 0x21e0968 0x21dd8d0
0x21e120
....
00e8:trace:ntlm:ntlm_InitializeSecurityContextW 0x1d51b20 0x1d36ad0
L"http/localhost" 0x00020800 0 0 0x21e0948 0 0x21dd80 0x21e0968 0x21dd8d0
0x21e120
00e8:trace:ntlm:ntlm_InitializeSecurityContextW Setting SECURITY_NETWORK_DREP
...
00e8:trace:ntlm:ntlm_GetTokenBufferIndex 0x21e0948
00e8:trace:ntlm:encodeBase64 bytes is 211, pad bytes is 1
00e8:trace:ntlm:ntlm_InitializeSecurityContextW Server sent: "TT xxx="
00e8:trace:ntlm:run_helper In helper: sending "TT xxx="
00e8:trace:ntlm:read_line offset = 0, size = 200
00e8:trace:ntlm:read_line read_size = 3, read: "PW\xxx=="
00e8:trace:ntlm:read_line offset_len is calculated from 0x1d4ef63 - 0x1d4ef63
00e8:trace:ntlm:run_helper In helper: received "PW"
00e8:trace:ntlm:preserve_unused offset_len = 0
00e8:trace:ntlm:preserve_unused helper->com_buf_offset was set to: 0
00e8:trace:ntlm:ntlm_InitializeSecurityContextW Helper replied: "PW"
00e8:trace:ntlm:ntlm_InitializeSecurityContextW Helper returned PW
...
00e8:Ret  secur32.InitializeSecurityContextW() retval=80090308 ret=64474db2c56
00e8:Call KERNEL32.GetLastError() ret=00f8e42f
00e8:Ret  KERNEL32.GetLastError() retval=00000490 ret=00f8e42f
00e8:Call secur32.DeleteSecurityContext(021df460) ret=64474db2920
00e8:trace:secur32:DeleteSecurityContext 0x21df460
00e8:trace:ntlm:ntlm_DeleteSecurityContext 0x1d36ad0
...
00e8:Ret  secur32.DeleteSecurityContext() retval=00000000 ret=64474db2920
00e8:Call KERNEL32.GetLastError() ret=00f8e42f
00e8:Ret  KERNEL32.GetLastError() retval=00000490 ret=00f8e42f
00e8:Call
KERNEL32.FormatMessageW(00003200,00000000,ffffffff80090308,00000000,0021dff0,00000101,00000000)
ret=64474db108f
00e8:Ret  KERNEL32.FormatMessageW() retval=00000000 ret=64474db108f
00e8:Call KERNEL32.GetLastError() ret=00f8e42f
00e8:Ret  KERNEL32.GetLastError() retval=0000013d ret=00f8e42f
00e8:Call KERNEL32.RaiseException(e0434352,00000001,00000005,0021e1d8)
ret=010e3a87
00e8:Call ntdll.memcpy(0021e058,0021e1d8,00000028) ret=7b00f656
00e8:Ret  ntdll.memcpy() retval=0021e058 ret=7b00f656
00e8:trace:seh:raise_exception code=e0434352 flags=1 addr=0x7b00f665
ip=7b00f665 tid=00e8
00e8:trace:seh:raise_exception  info[0]=ffffffff80004005
00e8:trace:seh:raise_exception  info[1]=0000000000000000
00e8:trace:seh:raise_exception  info[2]=0000000000000000
00e8:trace:seh:raise_exception  info[3]=0000000000000000
00e8:trace:seh:raise_exception  info[4]=0000000000f40000
00e8:trace:seh:raise_exception  rax=000000000021e058 rbx=000000000021e1d8
rcx=000000000021e038 rdx=0000000000000036
00e8:trace:seh:raise_exception  rsi=0000000000000005 rdi=000000000021e100
rbp=000000000021e138 rsp=000000000021e010
00e8:trace:seh:raise_exception   r8=0000000000000000  r9=000000000021d810
r10=0000000000000000 r11=0000000000000000
00e8:trace:seh:raise_exception  r12=0000000000004000 r13=000000000021e4fc
r14=00000000e0434352 r15=0000000000000004 
...
00e8:Call KERNEL32.WideCharToMultiByte(000001b5,00000000,01dcd3c0
L"System.ComponentModel.Win32Exception: Unknown error (0x80090308)\r\n   at
WSMParis.Server.Program.Main(String[]
args)",00000073,00218b28,00000073,00000000,00000000) ret=012b5854
00e8:Ret  KERNEL32.WideCharToMultiByte() retval=00000073 ret=012b5854
--- snip ---

Wine source:

https://source.winehq.org/git/wine.git/blob/d1f858e03da732c621504f90e349d5170ca3336e:/dlls/secur32/ntlm.c#l415

Second call handling:

https://source.winehq.org/git/wine.git/blob/d1f858e03da732c621504f90e349d5170ca3336e:/dlls/secur32/ntlm.c#l722

$ sha1sum Sennheiser_WSM_Setup_4.4.6.6.exe 
be82329265ce8fca79334612007ea9b1f894bf8f  Sennheiser_WSM_Setup_4.4.6.6.exe

$ du -sh Sennheiser_WSM_Setup_4.4.6.6.exe 
122M    Sennheiser_WSM_Setup_4.4.6.6.exe

$ wine --version
wine-5.7-177-gad1fad8a94

Regards

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