[Bug 42813] USB Network Gate driver installer crashes ('setupapi.SetupDiInstallClassW' needs more flesh)

WineHQ Bugzilla wine-bugs at winehq.org
Fri Nov 22 11:24:56 CST 2019


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

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                URL|https://www.sixa.io/        |https://web.archive.org/web
                   |                            |/20190713063732/https://cdn
                   |                            |.electronic.us/products/usb
                   |                            |-over-ethernet/windows/down
                   |                            |load/usb_network_gate.exe
          Component|-unknown                    |setupapi
            Summary|Sixa crashes                |USB Network Gate driver
                   |                            |installer crashes
                   |                            |('setupapi.SetupDiInstallCl
                   |                            |assW' needs more flesh)
                 CC|                            |focht at gmx.net

--- Comment #6 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

confirming, still present.

It's actually the installer for USB Network Gate (USB over Ethernet Sharing
Software) that is crashing here. The app bundles it.

https://www.eltima.com/products/usb-over-ethernet/

--- snip ---
C:\users\jk\Application Data\SIXA\USB\x64\setup_server_ung.exe
--- snip ---

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/Electronic Team/USB Network
Gate/drv/NT6x64

$ WINEDEBUG=+seh,+relay,+setupapi wine ./setup_server_ung.exe >>log.txt 2>&1
...
002d:Call setupapi.SetupCopyOEMInfW(0007f6d8 L"C:\\Program Files\\Electronic
Team\\USB Network
Gate\\drv\\NT6x64\\UsbStub.inf",00000000,00000000,00000000,00000000,00000000,00000000,00000000)
ret=14000437e 
...
002d:trace:setupapi:SetupCopyOEMInfW Found existing INF
L"C:\\windows\\inf\\UsbStub.inf".
002d:Ret  setupapi.SetupCopyOEMInfW() retval=00000001 ret=14000437e
002d:Call setupapi.SetupDiInstallClassW(00000000,0007f6d8 L"C:\\Program
Files\\Electronic Team\\USB Network
Gate\\drv\\NT6x64\\UsbStub.inf",00800000,00000000) ret=14000452b
002d:fixme:setupapi:SetupDiInstallClassW  
...
002d:trace:setupapi:SetupOpenInfFileW L"C:\\Program Files\\Electronic Team\\USB
Network Gate\\drv\\NT6x64\\UsbStub.inf" -> 000000000007FF40 
...
002d:trace:setupapi:SetupQueueCopySectionW queue 0000000000078710, src_root
L"C:\\Program Files\\Electronic Team\\USB Network Gate\\drv\\NT6x64", hinf
000000000007FF40, hlist 000000000007FF40, section L"UsbStub.NT.Copy", style 0. 
...
002d:trace:setupapi:SetupQueueCopyIndirectW root=L"C:\\Program
Files\\Electronic Team\\USB Network Gate\\drv\\NT6x64" path=(null)
file=L"eusbstub.sys" -> dir=L"C:\\windows\\system32\\drivers"
file=L"eusbstub.sys"  descr=L"Share USB Device over Ethernet Disk #1"
tag=(null) 
...
002d:trace:setupapi:SetupFindNextMatchLineW
(000000000007FF40,L"ClassInstall32",L"RenFiles"): not found
002d:trace:seh:raise_exception code=c0000005 flags=0 addr=(nil) ip=0 tid=002d
002d:trace:seh:raise_exception  info[0]=0000000000000008
002d:trace:seh:raise_exception  info[1]=0000000000000000
002d:trace:seh:raise_exception  rax=0000000000000001 rbx=0000000000000000
rcx=0000000000000000 rdx=0000000000000001
002d:trace:seh:raise_exception  rsi=0000000000000000 rdi=0000000000000000
rbp=000000000022f820 rsp=000000000022f008
002d:trace:seh:raise_exception   r8=0000000000000000  r9=0000000000000000
r10=0000000000000000 r11=0000000000000246
002d:trace:seh:raise_exception  r12=0000000000000000 r13=000000000022f530
r14=0000000000000004 r15=0000000000078710 
...
wine: Unhandled page fault on execute access to 0000000000000000 at address
0000000000000000 (thread 002d), starting debugger... 
--- snip ---

'SetupDiInstallClassW' needs more flesh.

The crash is due to 'SetupInstallFromInfSectionW' called with NULL callback
which causes crash in 'SetupCommitFileQueueW'.

--- snip ---

Wine-dbg>bt
Backtrace:
=>0 0x000000006a734ea0 SetupCommitFileQueueW(owner=(nil), handle=0x52ed0,
handler=(nil), context=0x0(nil))
[Z:\home\focht\projects\wine\mainline-src\dlls\setupapi\queue.c:1330] in
setupapi (0x000000000022f890)
  1 0x000000006a7219d7 SetupInstallFromInfSectionW+0x436(owner=<is not
available>, hinf=<is not available>, section=<is not available>, flags=<is not
available>)
[Z:\home\focht\projects\wine\mainline-src\dlls\setupapi\install.c:1104] in
setupapi (0x000000000022f890)
  2 0x000000006a70b3e6 SetupDiInstallClassW+0x2e5(hwndParent=<is not
available>, InfFileName=<is not available>, Flags=<is not available>,
FileQueue=<is not available>)
[Z:\home\focht\projects\wine\mainline-src\dlls\setupapi\devinst.c:3256] in
setupapi (0x000000000022f680)
  3 0x000000014000452b in setup_server_ung (+0x452a) (0x000000000022fba9)
  4 0x0000000140006040 in setup_server_ung (+0x603f) (0x000000000022fd08)
  5 0x00000001400064e0 in setup_server_ung (+0x64df) (0x000000000022fd19)
  6 0x000000014001193f in setup_server_ung (+0x1193e) (0x000000000022ffd0)
  7 0x000000007b464157 start_process+0x156(entry=0x14001197c,
peb=0x7fffffeaf000)
[Z:\home\focht\projects\wine\mainline-src\dlls\kernel32\process.c:154] in
kernel32 (0x000000000022ffd0)
Wine-dbg>n
1339        if (!queue->copy_queue.count && !queue->delete_queue.count &&
!queue->rename_queue.count)
Wine-dbg>n
1330    {
Wine-dbg>n
1337        paths.Source = paths.Target = NULL;
Wine-dbg>n
1339        if (!queue->copy_queue.count && !queue->delete_queue.count &&
!queue->rename_queue.count)
Wine-dbg>n
1342        if (!handler( context, SPFILENOTIFY_STARTQUEUE, (UINT_PTR)owner, 0
)) return FALSE;
Wine-dbg>n
Unhandled exception: page fault on execute access to 0x00000000 in 64-bit code
(0x0000000000000000).

--- snip ---

Wine source:

https://source.winehq.org/git/wine.git/blob/HEAD:/dlls/setupapi/devinst.c#l3181

--- snip ---
3181 /***********************************************************************
3182  *              SetupDiInstallClassW (SETUPAPI.@)
3183  */
3184 BOOL WINAPI SetupDiInstallClassW(
3185         HWND hwndParent,
3186         PCWSTR InfFileName,
3187         DWORD Flags,
3188         HSPFILEQ FileQueue)
3189 {
3190     WCHAR SectionName[MAX_PATH];
3191     DWORD SectionNameLength = 0;
3192     HINF hInf;
3193     BOOL bFileQueueCreated = FALSE;
3194     HKEY hClassKey;
3195 
3196 
3197     FIXME("\n");
...
3256     SetupInstallFromInfSectionW(NULL,
3257                                 hInf,
3258                                 SectionName,
3259                                 SPINST_COPYINF | SPINST_FILES |
SPINST_REGISTRY,
3260                                 hClassKey,
3261                                 NULL,
3262                                 0,
3263                                 NULL,
3264                                 NULL,
3265                                 INVALID_HANDLE_VALUE,
3266                                 NULL);
3267 
3268     /* FIXME: More code! */
3269 
3270     if (bFileQueueCreated)
3271         SetupCloseFileQueue(FileQueue);
3272 
3273     SetupCloseInfFile(hInf);
3274 
3275     return TRUE;
3276 }
--- snip ---

$ sha1sum usb_network_gate.exe 
8fa54635c41daf63721504b7996a9c594ba7842a  usb_network_gate.exe

$ du -sh usb_network_gate.exe 
5.6M    usb_network_gate.exe

$ wine --version
wine-4.20-141-g90fc020400

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