[Bug 45801] New: Symantec Norton 360 installer loops endlessly in post-install scan due to 'ws2_32.WSCGetProviderPath' stub

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Sep 9 06:45:44 CDT 2018


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 at winehq.org
          Reporter: focht at 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

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