https://bugs.winehq.org/show_bug.cgi?id=45801
Bug ID: 45801 Summary: Symantec Norton 360 installer loops endlessly in post-install scan due to 'ws2_32.WSCGetProviderPath' stub Product: Wine Version: 3.15 Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: winsock Assignee: wine-bugs@winehq.org Reporter: focht@gmx.net Distribution: ---
Hello folks,
as it says. The installation part succeeds but the first-time scan loops endlessly, preventing the installer from exiting (same process).
--- snip --- $ wine ./N360-TW-21.1.0-EN.exe ... 0053:fixme:winsock:WSCGetProviderPath ({e70f1aa0-ab8b-11cf-8ca3-00805f48a192} (nil) 0xccec1c 0xccec10) Stub! 0053:fixme:winsock:WSCGetProviderPath ({e70f1aa0-ab8b-11cf-8ca3-00805f48a192} (nil) 0xccec1c 0xccec10) Stub! 0053:fixme:winsock:WSCGetProviderPath ({e70f1aa0-ab8b-11cf-8ca3-00805f48a192} (nil) 0xccec1c 0xccec10) Stub! 0053:fixme:winsock:WSCGetProviderPath ({e70f1aa0-ab8b-11cf-8ca3-00805f48a192} (nil) 0xccec1c 0xccec10) Stub! 0053:fixme:winsock:WSCGetProviderPath ({e70f1aa0-ab8b-11cf-8ca3-00805f48a192} (nil) 0xccec1c 0xccec10) Stub! 0053:fixme:winsock:WSCGetProviderPath ({e70f1aa0-ab8b-11cf-8ca3-00805f48a192} (nil) 0xccec1c 0xccec10) Stub! 0053:fixme:winsock:WSCGetProviderPath ({e70f1aa0-ab8b-11cf-8ca3-00805f48a192} (nil) 0xccec1c 0xccec10) Stub! 0053:fixme:winsock:WSCGetProviderPath ({e70f1aa0-ab8b-11cf-8ca3-00805f48a192} (nil) 0xccec1c 0xccec10) Stub! 0053:fixme:winsock:WSCGetProviderPath ({e70f1aa0-ab8b-11cf-8ca3-00805f48a192} (nil) 0xccec1c 0xccec10) Stub! 0053:fixme:winsock:WSCGetProviderPath ({e70f1aa0-ab8b-11cf-8ca3-00805f48a192} (nil) 0xccec1c 0xccec10) Stub! 0053:fixme:winsock:WSCGetProviderPath ({e70f1aa0-ab8b-11cf-8ca3-00805f48a192} (nil) 0xccec1c 0xccec10) Stub! 0053:fixme:winsock:WSCGetProviderPath ({e70f1aa0-ab8b-11cf-8ca3-00805f48a192} (nil) 0xccec1c 0xccec10) Stub! ... <endless spam> --- snip ---
--- snip --- $ find .wine -iname *.log .wine/drive_c/ProgramData/NortonInstaller/Logs/2018-09-09-13h01m53s/NortonInstall-2018-09-09-13h01m53s.log --- snip ---
--- snip --- ... 2018-09-09-13-03-23-995 : 0x0036 : Information : BB::CProcessPrioritySetterMgr::Run(921) : Waiting on stop signal for 200 milliseconds, 450 of 1501 2018-09-09-13-03-24-066 : 0x003A : Information : CLueStandaloneSessionBase::DownloadUpdates(272) : Finish: DownloadUpdates (0x00000000) 2018-09-09-13-03-24-068 : 0x003A : Information : Scan Results: C:\ProgramData\NortonInstaller\Logs\2018-09-09-13h01m53s\ScanResults.txt 2018-09-09-13-03-24-068 : 0x003A : Information : Start: Load DefUtils 2018-09-09-13-03-24-070 : 0x003A : Information : Finish: Load DefUtils 2018-09-09-13-03-24-073 : 0x003A : Information : defs path: C:\Program Files\NortonInstaller{0C55C096-0F1D-4F28-AAA2-85EF591126E7}\N360\A5E82D02\21.1.0.18\Definitions\VirusDefs\20131004.035 2018-09-09-13-03-24-073 : 0x003A : Information : Start: Install Scan ... --- snip ---
Debugger session:
--- snip --- $ winedbg Wine-dbg>info process
pid threads executable (all id:s are in hex) 00000011 2 'explorer.exe' 0000000c 6 'services.exe' 00000049 5 _ 'rpcss.exe' 00000043 6 _ 'svchost.exe' 00000030 4 _ 'winedevice.exe' 00000008 8 'N360-TW-21.1.0-EN.exe'
Wine-dbg>attach 0x8
Wine-dbg>b WSCGetProviderPath
Breakpoint 1 at 0x7e8b094c WSCGetProviderPath [/home/focht/projects/wine/mainline-src/dlls/ws2_32/socket.c:8939] in ws2_32
Wine-dbg>c
Stopped on breakpoint 1 at 0x7e8b094c WSCGetProviderPath [/home/focht/projects/wine/mainline-src/dlls/ws2_32/socket.c:8939] in ws2_32 WSCGetProviderPath () at /home/focht/projects/wine/mainline-src/dlls/ws2_32/socket.c:8939 8939 {
Wine-dbg>bt
Backtrace: =>0 0x7e8b094c WSCGetProviderPath() [/home/focht/projects/wine/mainline-src/dlls/ws2_32/socket.c:8939] in ws2_32 (0x00ccec8c) 1 0x1b741f3f in cceraser (+0x101f3e) (0x00cceef8) 2 0x1b741bc7 in cceraser (+0x101bc6) (0x00ccef24) 3 0x1b728428 in cceraser (+0xe8427) (0x00ccef58) 4 0x1b7281df in cceraser (+0xe81de) (0x00ccef88) 5 0x1b6bd400 in cceraser (+0x7d3ff) (0x00ccf06c) 6 0x1b6bca41 in cceraser (+0x7ca40) (0x00ccf080) 7 0x1b6ddbc5 in cceraser (+0x9dbc4) (0x00ccf164) 8 0x1b6ddde4 in cceraser (+0x9dde3) (0x00ccf17c) 9 0x1b6a0cee in cceraser (+0x60ced) (0x00ccf1c4) 10 0x1b6a0659 in cceraser (+0x60658) (0x00ccf378) 11 0x1b6a0387 in cceraser (+0x60386) (0x00ccf3a4) 12 0x606594e8 in avprescn (+0x94e7) (0x00ccf468) 13 0x6c1f873b in engine (+0x1a873a) (0x00ccf4c8) 14 0x6c1bb261 in engine (+0x16b260) (0x00ccf61c) 15 0x6c1c2f1d in engine (+0x172f1c) (0x00ccf65c) 16 0x6c1c8b85 in engine (+0x178b84) (0x00ccf8d8) 17 0x6c1ccb1c in engine (+0x17cb1b) (0x00ccfd64) 18 0x6c1ccc9b in engine (+0x17cc9a) (0x00ccfd78) 19 0x00479753 in n360-tw-21.1.0-en (+0x79752) (0x00ccfd9c) 20 0x00472ef8 in n360-tw-21.1.0-en (+0x72ef7) (0x00ccfe40) 21 0x00477367 in n360-tw-21.1.0-en (+0x77366) (0x00ccfe54) 22 0x004182d7 in n360-tw-21.1.0-en (+0x182d6) (0x00ccfe74) 23 0x0041835d in n360-tw-21.1.0-en (+0x1835c) (0x00ccfe88) 24 0x004183dd in n360-tw-21.1.0-en (+0x183dc) (0x00ccfe98) 25 0x00453b3b in n360-tw-21.1.0-en (+0x53b3a) (0x00ccfed0) 26 0x00453bc5 in n360-tw-21.1.0-en (+0x53bc4) (0x00ccfedc) 27 0x7bc977d8 call_thread_func_wrapper+0xb() in ntdll (0x00ccfeec) 28 0x7bc9783e call_thread_func+0x63() [/home/focht/projects/wine/mainline-src/dlls/ntdll/signal_i386.c:2654] in ntdll (0x00ccffdc) 29 0x7bc977ca call_thread_entry+0x9() in ntdll (0x00ccffec)
Wine-dbg>info thread
process tid prio (all id:s are in hex) 00000008 (D) Z:\home\focht\Downloads\N360-TW-21.1.0-EN.exe 0000007f 0 0000007e 15 0000007c 0 00000040 0 0000003b 0 0000003a 2 <== 00000036 0 00000009 0
Wine-dbg>info share
Module Address Debug info Name (179 modules) PE 400000- 502000 Export n360-tw-21.1.0-en PE 1180000- 128f000 Export cltlms PE 1a6b0000-1a75f000 Export ccl120u PE 1b640000-1b931000 Export cceraser PE 60650000-606b6000 Export avprescn PE 62170000-621cc000 Export prodcbk PE 687d0000-687f1000 Export qbackup PE 68f00000-68f0e000 Export ecmldr32 PE 68f40000-68f89000 Export ecmsvr32 PE 69000000-691dd000 Export navex32a PE 69480000-694af000 Export naveng32 PE 6a800000-6a865000 Export defutdcd PE 6acf0000-6af1b000 Export ccscanw PE 6c050000-6c307000 Export engine PE 6c580000-6c949000 Export instui PE 6f700000-6f769000 Export srtsp32 ELF 7aa3f000-7abb0000 Dwarf actxprxy<elf> -PE 7aa70000-7abb0000 \ actxprxy ELF 7abb0000-7ad20000 Dwarf msi<elf> -PE 7abd0000-7ad20000 \ msi ...
Wine-dbg> 0x7e8b09de WSCGetProviderPath+0x92 [/home/focht/projects/wine/mainline-src/dlls/ws2_32/socket.c:8946] in ws2_32: ret $0x10 8946 }
Wine-dbg> 0x1b7b4d10: movl %eax,0x28(%esp)
Wine-dbg>si 0x1b7b4d14: cmpl $-1,%eax
Wine-dbg> 0x1b7b4d17: jnz 0x1b7b4d66
Wine-dbg>info reg Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:1b7b4d17 ESP:00ccec00 EBP:00ccec8c EFLAGS:00000246( - -- I Z- -P- ) EAX:ffffffff EBX:00000000 ECX:00ccebf0 EDX:00cd2f44 ESI:7e8b094c EDI:000003e8 --- snip ---
Apparently the installer/app code doesn't handle the case where no provider is returned at all. WinSock service provider information for '{e70f1aa0-ab8b-11cf-8ca3-00805f48a192}':
Wine source:
https://source.winehq.org/git/wine.git/blob/HEAD:/dlls/ws2_32/socket.c#l8938
--- snip --- 8938 INT WINAPI WSCGetProviderPath( LPGUID provider, LPWSTR path, LPINT len, LPINT errcode ) 8939 { 8940 FIXME( "(%s %p %p %p) Stub!\n", debugstr_guid(provider), path, len, errcode ); 8941 8942 if (!errcode || !provider || !len) return WSAEFAULT; 8943 8944 *errcode = WSAEINVAL; 8945 return SOCKET_ERROR; 8946 } --- snip ---
https://www.winhelponline.com/xp/lsp.txt
--- snip --- ... Winsock Catalog Provider Entry ------------------------------------------------------ Entry Type: Base Service Provider Description: MSAFD Tcpip [TCP/IP] Provider ID: {E70F1AA0-AB8B-11CF-8CA3-00805F48A192} Provider Path: %SystemRoot%\system32\mswsock.dll Catalog Entry ID: 1001 Version: 2 Address Family: 2 Max Address Length: 16 Min Address Length: 16 Socket Type: 1 Protocol: 6 Protocol Chain Length: 1
Winsock Catalog Provider Entry ------------------------------------------------------ Entry Type: Base Service Provider Description: MSAFD Tcpip [UDP/IP] Provider ID: {E70F1AA0-AB8B-11CF-8CA3-00805F48A192} Provider Path: %SystemRoot%\system32\mswsock.dll Catalog Entry ID: 1002 Version: 2 Address Family: 2 Max Address Length: 16 Min Address Length: 16 Socket Type: 2 Protocol: 17 Protocol Chain Length: 1
Winsock Catalog Provider Entry ------------------------------------------------------ Entry Type: Base Service Provider Description: MSAFD Tcpip [RAW/IP] Provider ID: {E70F1AA0-AB8B-11CF-8CA3-00805F48A192} Provider Path: %SystemRoot%\system32\mswsock.dll Catalog Entry ID: 1003 Version: 2 Address Family: 2 Max Address Length: 16 Min Address Length: 16 Socket Type: 3 Protocol: 0 Protocol Chain Length: 1 ... --- quote ---
$ sha1sum N360-TW-21.1.0-EN.exe aa05ccf9668e166ef28923d451f1c2ecad6f75f1 N360-TW-21.1.0-EN.exe
$ du -sh N360-TW-21.1.0-EN.exe 202M N360-TW-21.1.0-EN.exe
$ wine --version wine-3.15-94-gbfe8510ec0
Regards