https://bugs.winehq.org/show_bug.cgi?id=43570
Bug ID: 43570 Summary: Easy Computer Sync- wine said i had to close the whole programe Product: Wine Version: 2.0.2 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: blocker Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: c1fish13@gmail.com Distribution: ---
Created attachment 58980 --> https://bugs.winehq.org/attachment.cgi?id=58980 Easy Computer Sync- wine said i had to close the whole programe
This stopped me using a program called easy computer sync. It just said there was a bug and that i should close the whole program.
https://bugs.winehq.org/show_bug.cgi?id=43570
--- Comment #1 from Nikolay Sivov bunglehead@gmail.com --- You're running outdated Wine 1.6.2. First please upgrade to the latest version.
https://bugs.winehq.org/show_bug.cgi?id=43570
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net Component|-unknown |shell32 Severity|blocker |normal Version|2.0.2 |1.6.2 URL| |https://www.bravurasoftware | |.com/easy-computer-sync/dow | |nload.aspx Status|UNCONFIRMED |NEW Summary|Easy Computer Sync- wine |Bravura Easy Computer Sync |said i had to close the |1.5 crashes on startup |whole programe | Keywords| |download Ever confirmed|0 |1
--- Comment #2 from Anastasius Focht focht@gmx.net --- Hello folks
confirming.
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Bravura/Easy Computer Sync
$ WINEDEBUG=+tid,+seh,+relay wine ./EasySync.exe >>log.txt 2>&1 ... 002f:Call advapi32.RegOpenKeyExW(80000002,001bc000 L"SYSTEM\CurrentControlSet\Control\Class\{BC103702-DD72-406F-9B28-95C868337B59}",00000000,00020019,0033edd8) ret=0047318a 002f:Ret advapi32.RegOpenKeyExW() retval=00000002 ret=0047318a ... 002f:Call KERNEL32.InterlockedIncrement(00c6c26c) ret=00403fe8 002f:Ret KERNEL32.InterlockedIncrement() retval=00000002 ret=00403fe8 002f:trace:seh:raise_exception code=c0000005 flags=0 addr=0x40393d ip=0040393d tid=002f 002f:trace:seh:raise_exception info[0]=00000000 002f:trace:seh:raise_exception info[1]=00000000 002f:trace:seh:raise_exception eax=00c6c1f8 ebx=00000007 ecx=00000000 edx=00c6c26c esi=006f817c edi=7b431890 002f:trace:seh:raise_exception ebp=0033ef18 esp=0033eeb4 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00210246 002f:trace:seh:call_stack_handlers calling handler at 0x6bc638 code=c0000005 flags=0 ... Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0x0040393d). ... Backtrace: =>0 0x0040393d in easysync (+0x393d) (0x0033ef18) 1 0x0052d9f0 in easysync (+0x12d9ef) (0x0033efd4) 2 0x00528b67 in easysync (+0x128b66) (0x0033eff4) 3 0x0052c14f in easysync (+0x12c14e) (0x0033f068) 4 0x0052c1de in easysync (+0x12c1dd) (0x0033f088) 5 0x7ea9bb46 WINPROC_wrapper+0x19() in user32 (0x0033f0b8) 6 0x7ea9bc5f call_window_proc+0xa1(hwnd=0x100b4, msg=0x6, wp=0, lp=0, result=0x33f238, arg=0x52c1a8) [/home/focht/projects/wine/wine.repo/src/dlls/user32/winproc.c:245] in user32 (0x0033f0f8) 7 0x7ea9d993 WINPROC_call_window+0x13b(hwnd=0x100b4, msg=0x6, wParam=0, lParam=0, result=0x33f238, unicode=0x1, mapping=WMCHAR_MAP_DISPATCHMESSAGE) [/home/focht/projects/wine/wine.repo/src/dlls/user32/winproc.c:901] in user32 (0x0033f148) 8 0x7ea670e5 DispatchMessageW+0x187(msg=<couldn't compute location>) [/home/focht/projects/wine/wine.repo/src/dlls/user32/message.c:4034] in user32 (0x0033f268) 9 0x7bc7c6f6 relay_call+0x39() in ntdll (0x0033f298) 10 0x7ea07e95 in user32 (+0x7e94) (0x0033f2e0) 11 0x00577302 in easysync (+0x177301) (0x0033f2e0) 12 0x00531d02 in easysync (+0x131d01) (0x0033f32c) 13 0x00436101 in easysync (+0x36100) (0x0033fd9c) 14 0x0068f63c in easysync (+0x28f63b) (0x0033fdb0) 15 0x006724f1 in easysync (+0x2724f0) (0x0033fe40) ... 0x0040393d: movl 0x0(%ecx),%eax Modules: Module Address Debug info Name (106 modules) PE 400000- b4b000 Export easysync ELF 4b4ac000-4b4ca000 Deferred libgcc_s.so.1 ELF 7b400000-7b7f0000 Dwarf kernel32<elf> -PE 7b420000-7b7f0000 \ kernel32 ELF 7bc00000-7bd09000 Dwarf ntdll<elf> -PE 7bc30000-7bd09000 \ ntdll ELF 7c000000-7c004000 Dwarf <wine-loader> ... Threads: process tid prio (all id:s are in hex) ... 0000002e (D) C:\Program Files\Bravura\Easy Computer Sync\EasySync.exe 0000002f 0 <== --- snip ---
The crash is trigged by incomplete app internal struct members initialization. Tracing that back to a completely unrelated piece of code was kinda challenging as these structures were hierarchical (linked) and dynamically allocated. Very few "stable" member references, referring to fixed virtual addresses (many duplicate structures to rule out).
Anyway, the real problem is the app failing to extract a number of icon resources from 'shell32.dll'. Each failure causes a C++ exception which gets counted. If the count exceeds a threshold, an internal thread is terminated which was partially responsible for further struct member initialization (flag field) which later causes another piece of initialization code to be skipped, ultimately leading to the crash.
--- snip --- ... 002f:Call KERNEL32.CreateThread(00000000,00000000,0048c0f0,00c6c280,00000000,00000000) ret=0048bf13 002f:Ret KERNEL32.CreateThread() retval=00000090 ret=0048bf13 ... 0030:Starting thread proc 0x48c0f0 (arg=0xc6c280) ... 0030:Call shell32.ExtractIconExW(001890f0 L"C:\windows\system32\shell32.dll",fffffffc,00000000,00ca01c8,00000001) ret=00481223 0030:Call user32.PrivateExtractIconExW(001890f0 L"C:\windows\system32\shell32.dll",fffffffc,00000000,00ca01c8,00000001) ret=7e57a20c 0030:Call winex11.drv.CreateDesktopWindow(00010020) ret=7ea81d84 0030:Ret winex11.drv.CreateDesktopWindow() retval=00000001 ret=7ea81d84 ... 0030:Ret user32.PrivateExtractIconExW() retval=00000001 ret=7e57a20c 0030:Ret shell32.ExtractIconExW() retval=00000001 ret=00481223 ... 0030:Call shell32.ExtractIconExW(001890f0 L"C:\windows\system32\shell32.dll",fffffffc,00ca01cc,00000000,00000001) ret=00481248 0030:Call user32.PrivateExtractIconExW(001890f0 L"C:\windows\system32\shell32.dll",fffffffc,00ca01cc,00000000,00000001) ret=7e57a20c ... 0030:Ret user32.PrivateExtractIconExW() retval=00000001 ret=7e57a20c 0030:Ret shell32.ExtractIconExW() retval=00000001 ret=00481248 ... 0030:Call shell32.ExtractIconExW(0018a360 L"C:\windows\system32\shell32.dll",fffffffe,00000000,00ca14f8,00000001) ret=00481223 0030:Call user32.PrivateExtractIconExW(0018a360 L"C:\windows\system32\shell32.dll",fffffffe,00000000,00ca14f8,00000001) ret=7e57a20c 0030:Ret user32.PrivateExtractIconExW() retval=00000000 ret=7e57a20c 0030:Ret shell32.ExtractIconExW() retval=00000000 ret=00481223 ... 0030:Call KERNEL32.RaiseException(e06d7363,00000001,00000003,00e6e71c) ret=0067618e 0030:trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7b446223 ip=7b446223 tid=0030 0030:trace:seh:raise_exception info[0]=19930520 0030:trace:seh:raise_exception info[1]=00e6e770 0030:trace:seh:raise_exception info[2]=00785520 0030:trace:seh:raise_exception eax=7b43499d ebx=0000001f ecx=0000000c edx=00e6e664 esi=00e6e708 edi=00e6e6d0 0030:trace:seh:raise_exception ebp=00e6e6a8 esp=00e6e644 cs=0023 ds=e6002b es=fbad002b fs=0063 gs=e6006b flags=00200216 0030:trace:seh:call_stack_handlers calling handler at 0x6b842a code=e06d7363 flags=1 ... 0030:trace:seh:__regs_RtlUnwind handler at 0x6b842a returned 1 ... 0030:Call shell32.ExtractIconExW(0018a458 L"C:\windows\system32\shell32.dll",fffffffd,00000000,00ca14f8,00000001) ret=00481223 0030:Call user32.PrivateExtractIconExW(0018a458 L"C:\windows\system32\shell32.dll",fffffffd,00000000,00ca14f8,00000001) ret=7e57a20c 0030:Ret user32.PrivateExtractIconExW() retval=00000000 ret=7e57a20c 0030:Ret shell32.ExtractIconExW() retval=00000000 ret=00481223 ... 0030:Call KERNEL32.RaiseException(e06d7363,00000001,00000003,00e6e71c) ret=0067618e 0030:trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7b446223 ip=7b446223 tid=0030 0030:trace:seh:raise_exception info[0]=19930520 0030:trace:seh:raise_exception info[1]=00e6e770 0030:trace:seh:raise_exception info[2]=00785520 0030:trace:seh:raise_exception eax=7b43499d ebx=0000001f ecx=0000000c edx=00e6e664 esi=00e6e708 edi=00e6e6d0 0030:trace:seh:raise_exception ebp=00e6e6a8 esp=00e6e644 cs=0023 ds=e6002b es=fbad002b fs=0063 gs=e6006b flags=00200216 0030:trace:seh:call_stack_handlers calling handler at 0x6b842a code=e06d7363 flags=1 ... 0030:trace:seh:__regs_RtlUnwind handler at 0x6b842a returned 1 ... 0030:Call shell32.ExtractIconExW(0018a458 L"C:\windows\system32\shell32.dll",ffffff15,00000000,00ca14f8,00000001) ret=00481223 0030:Call user32.PrivateExtractIconExW(0018a458 L"C:\windows\system32\shell32.dll",ffffff15,00000000,00ca14f8,00000001) ret=7e57a20c ... 0030:Ret user32.PrivateExtractIconExW() retval=00000001 ret=7e57a20c 0030:Ret shell32.ExtractIconExW() retval=00000001 ret=00481223 ... 0030:Call shell32.ExtractIconExW(0018a458 L"C:\windows\system32\shell32.dll",ffffff15,00ca14fc,00000000,00000001) ret=00481248 0030:Call user32.PrivateExtractIconExW(0018a458 L"C:\windows\system32\shell32.dll",ffffff15,00ca14fc,00000000,00000001) ret=7e57a20c ... 0030:Ret user32.PrivateExtractIconExW() retval=00000001 ret=7e57a20c 0030:Ret shell32.ExtractIconExW() retval=00000001 ret=00481248 ... 0030:Call PE DLL (proc=0x7e355fe3,module=0x7e270000 L"ole32.dll",reason=THREAD_DETACH,res=(nil)) 0030:Ret PE DLL (proc=0x7e355fe3,module=0x7e270000 L"ole32.dll",reason=THREAD_DETACH,res=(nil)) retval=1 --- snip ---
You need to add shell32 resources for:
* IDI_SHELL_RICH_TEXT (2) * IDI_SHELL_EXE (3)
The app will no longer crash and display some "Waiting for cable connection" dialog.
Regarding USB cable, that's a different issue.
'{BC103702-DD72-406F-9B28-95C868337B59}' -> Easy Transfer Cable driver
http://kb.laplink.com/index.php/article/printer/1054
Additional info about the USB cable:
https://www.bravurasoftware.com/easy-computer-sync/easy-transfer-cable.aspx
--- quote --- The Easy Transfer Cable is a specialized USB device for transferring data between two computers. It looks like a typical USB cable, except with a small box in the middle. This box holds the needed electronics to allow both computers to communicate with each other. The Easy Transfer Cable is USB 2.0 compliant, and allows transfer speeds of up to 480Mbps.
Easy Computer Sync is designed for and requires an Easy Transfer Cable. --- quote ---
* https://askubuntu.com/questions/905926/is-data-transfer-between-2-ubuntu-mac... * https://superuser.com/questions/795053/how-do-i-connect-two-computers-using-... * https://stackoverflow.com/questions/44086265/exposing-block-devices-from-a-l...
--- quote --- Using an "Easy Transfer Cable" (specifically, one with a Prolific PL27a1), the Linux distro sees that cable as an ethernet connection (as desired). However, Windows does not.
Is it possible to use an "Easy Transfer Cable" to act as an ethernet connection on Windows? That is, creating a virtual ethernet connection over a USB transfer cable. --- quote ---
So it seems as long as the USB device is registered as Ethernet NIC by the Linux kernel (driver) and as long as you connect two Linux boxes it might work - but without this software. The software wants to interact with the hardware on USB device (lib) level which isn't going to work as of now.
Anyway, why not using network cables to sync data?
$ sha1sum EasySyncSetup.exe 470b36058e11615e736b30cecabc4a89053767ed EasySyncSetup.exe
$ du -sh EasySyncSetup.exe 9.9M EasySyncSetup.exe
$ wine --version wine-2.14-97-gd53b711f27
Regards
https://bugs.winehq.org/show_bug.cgi?id=43570
Louis Lenders xerox.xerox2000x@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED Fixed by SHA1| |b14d8f9f11856c1b1f192bf773e | |b864cba5ad78b CC| |xerox.xerox2000x@gmail.com
--- Comment #3 from Louis Lenders xerox.xerox2000x@gmail.com --- (In reply to Anastasius Focht from comment #2)
Hello folks
confirming.
You need to add shell32 resources for:
- IDI_SHELL_RICH_TEXT (2)
- IDI_SHELL_EXE (3)
The app will no longer crash and display some "Waiting for cable connection" dialog.
Regards
Starts fine in current git.
Alex added lots of icons, i.e. commit b14d8f9f11856c1b1f192bf773eb864cba5ad78b
git show b14d8f9f11856c1b1f192bf773eb864cba5ad78b commit b14d8f9f11856c1b1f192bf773eb864cba5ad78b Author: Alex Henrie alexhenrie24@gmail.com Date: Tue Aug 14 22:09:57 2018 -0600
shell32: Add document icon.
Signed-off-by: Alex Henrie alexhenrie24@gmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org
diff --git a/dlls/shell32/shell32.rc b/dlls/shell32/shell32.rc index 992c70f..b6cae77 100644 --- a/dlls/shell32/shell32.rc +++ b/dlls/shell32/shell32.rc @@ -422,6 +422,9 @@ END /* @makedep: document.ico */ IDI_SHELL_FILE ICON document.ico
+/* @makedep: document.ico */ +IDI_SHELL_DOCUMENT ICON document.ico + /* @makedep: folder.ico */ IDI_SHELL_FOLDER ICON folder.ico
diff --git a/dlls/shell32/shresdef.h b/dlls/shell32/shresdef.h index cf43d4a..9c46d5f 100644 --- a/dlls/shell32/shresdef.h +++ b/dlls/shell32/shresdef.h @@ -170,6 +170,7 @@ #define IDD_TREEVIEW 0x3741
#define IDI_SHELL_FILE 1 +#define IDI_SHELL_DOCUMENT 2 #define IDI_SHELL_FOLDER 4 #define IDI_SHELL_FOLDER_OPEN 5 #define IDI_SHELL_5_12_FLOPPY 6
sha1sum ~/Downloads/EasySyncSetup.exe 470b36058e11615e736b30cecabc4a89053767ed /home/louis/Downloads/EasySyncSetup.exe
https://bugs.winehq.org/show_bug.cgi?id=43570
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #4 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 3.20.