[Bug 32337] ABBYY FineReader 11 trial version crashes when trying to activate the production (RichEdit control incorrectly returns failure for EM_SETREADONLY)
WineHQ Bugzilla
wine-bugs at winehq.org
Sat Apr 25 12:26:31 CDT 2020
https://bugs.winehq.org/show_bug.cgi?id=32337
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |focht at gmx.net
Fixed by SHA1| |455eca6d228a4850214345be2cc
| |cc665bece5a0e
Resolution|--- |FIXED
Summary|FineReader 11 trial version |ABBYY FineReader 11 trial
|crash when trying to |version crashes when trying
|activate the production |to activate the production
| |(RichEdit control
| |incorrectly returns failure
| |for EM_SETREADONLY)
Status|NEW |RESOLVED
--- Comment #2 from Anastasius Focht <focht at gmx.net> ---
Hello folks,
confirming, I could reproduce this with ancient Wine 1.5.18
It's not that easy to find an archived version of the installer. Multiple
installer snapshots from Internet Archive are corrupted (too short). Maybe the
Great Firewall (TM) interferes during mirroring. Honi soit qui mal y pense ...
https://web.archive.org/web/*/http://download.abbyy.cn/dist/fr11/ABBYY_FineReader_11_Chinese.exe
https://web.archive.org/web/20160313100032/http://download.abbyy.cn/dist/fr11/ABBYY_FineReader_11_Chinese.exe
Relevant part of trace log:
--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files (x86)/ABBYY FineReader 11
$ WINEDEBUG=+seh,+relay,+richedit wine ./FineReader.exe >>log.txt 2>&1
...
004d:Call user32.CreateWindowExW(00000000,01549c54 L"RichEdit20W",2ed85574
L"",50000080,00000000,00000000,00000000,00000000,00010120,00000400,2fe50000,00000000)
ret=2fee01b0
004d:Call window proc 0xf649d0f0
(hwnd=0x10122,msg=WM_NCCREATE,wp=00000000,lp=0032dca0)
trace:richedit:RichEditWndProc_common enter hwnd 0x10122 msg 0081 () 0 32dca0,
unicode 1
004d:Call user32.GetWindowLongW(00010122,00000000) ret=f649cbc4
004d:Ret user32.GetWindowLongW() retval=00000000 ret=f649cbc4
trace:richedit:RichEditWndProc_common WM_NCCREATE: hWnd 0x10122 style
0x50000080
....
004d:Call user32.SendMessageW(000b01dc,000000cf,00000001,00000000) ret=2feb6f0c
004d:Call window proc 0xf649d0f0
(hwnd=0xb01dc,msg=EM_SETREADONLY,wp=00000001,lp=00000000)
trace:richedit:RichEditWndProc_common enter hwnd 0xb01dc msg 00cf
(EM_SETREADONLY) 1 0, unicode 1
004d:Call user32.GetWindowLongW(000b01dc,00000000) ret=f649cbc4
004d:Ret user32.GetWindowLongW() retval=04807130 ret=f649cbc4
004d:Call user32.GetWindowLongW(000b01dc,fffffff0) ret=f649ce62
004d:Ret user32.GetWindowLongW() retval=50020880 ret=f649ce62
004d:Call user32.SetWindowLongW(000b01dc,fffffff0,50020880) ret=f649ce7a
004d:Call window proc 0xf649d0f0
(hwnd=0xb01dc,msg=WM_STYLECHANGING,wp=fffffff0,lp=0032d348)
trace:richedit:RichEditWndProc_common enter hwnd 0xb01dc msg 007c () fffffff0
32d348, unicode 1
004d:Call user32.GetWindowLongW(000b01dc,00000000) ret=f649cbc4
004d:Ret user32.GetWindowLongW() retval=04807130 ret=f649cbc4
004d:Call user32.DefWindowProcW(000b01dc,0000007c,fffffff0,0032d348)
ret=f649cfed
004d:Ret user32.DefWindowProcW() retval=00000000 ret=f649cfed
trace:richedit:RichEditWndProc_common exit hwnd 0xb01dc msg 007c () fffffff0
32d348, unicode 1 -> 0
004d:Ret window proc 0xf649d0f0
(hwnd=0xb01dc,msg=WM_STYLECHANGING,wp=fffffff0,lp=0032d348) retval=00000000
004d:Call window proc 0xf649d0f0
(hwnd=0xb01dc,msg=WM_STYLECHANGED,wp=fffffff0,lp=0032d348)
trace:richedit:RichEditWndProc_common enter hwnd 0xb01dc msg 007d () fffffff0
32d348, unicode 1
004d:Call user32.GetWindowLongW(000b01dc,00000000) ret=f649cbc4
004d:Ret user32.GetWindowLongW() retval=04807130 ret=f649cbc4
004d:Call user32.DefWindowProcW(000b01dc,0000007d,fffffff0,0032d348)
ret=f649cfed
004d:Ret user32.DefWindowProcW() retval=00000000 ret=f649cfed
trace:richedit:RichEditWndProc_common exit hwnd 0xb01dc msg 007d () fffffff0
32d348, unicode 1 -> 0
004d:Ret window proc 0xf649d0f0
(hwnd=0xb01dc,msg=WM_STYLECHANGED,wp=fffffff0,lp=0032d348) retval=00000000
004d:Ret user32.SetWindowLongW() retval=50020880 ret=f649ce7a
004d:Ret window proc 0xf649d0f0
(hwnd=0xb01dc,msg=EM_SETREADONLY,wp=00000001,lp=00000000) retval=00000000
004d:Ret user32.SendMessageW() retval=00000000 ret=2feb6f0c
...
004d:Call KERNEL32.RaiseException(e06d7363,00000001,00000003,0032d6e4)
ret=7ddb7c5b
trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7ebdc2a3 ip=7ebdc2a3
tid=004d
trace:seh:raise_exception info[0]=19930520
trace:seh:raise_exception info[1]=0032d7ac
trace:seh:raise_exception info[2]=2ed682d0
trace:seh:raise_exception eax=7ebcb81d ebx=00000008 ecx=0032d5e4 edx=0032d6e4
esi=0032d7ac edi=0032d640
trace:seh:raise_exception ebp=0032d628 esp=0032d5c4 cs=0023 ds=002b es=002b
fs=0063 gs=006b flags=00200212
trace:seh:call_stack_handlers calling handler at 0x2ed5b492 code=e06d7363
flags=1
trace:seh:call_stack_handlers handler at 0x2ed5b492 returned 1
trace:seh:call_stack_handlers calling handler at 0x2f03b7a2 code=e06d7363
flags=1
trace:seh:call_stack_handlers handler at 0x2f03b7a2 returned 1
trace:seh:call_stack_handlers calling handler at 0x2ff09618 code=e06d7363
flags=1
trace:seh:cxx_frame_handler handling C++ exception rec 0x32d5d0 frame 0x32d98c
trylevel 1 descr 0x2ff33df8 nested_frame (nil)
trace:seh:dump_exception_type flags 0 destr (nil) handler (nil) type info
0x2ed682bc
trace:seh:dump_exception_type 0: flags 1 type 0x2ed853f8 {vtable=0x2ed615f0
name=.PAVCInternalError at FObj@@ ()} offsets 0,-1,0 size 4 copy ctor (nil)
trace:seh:dump_exception_type 1: flags 1 type 0x2ed8517c {vtable=0x2ed615f0
name=.PAVCException at FObj@@ ()} offsets 0,-1,0 size 4 copy ctor (nil)
trace:seh:dump_exception_type 2: flags 1 type 0x2ed85368 {vtable=0x2ed615f0
name=.PAV?$CAllocatedOn at VRuntimeHeap@FObj@@@FObj@@ ()} offsets 4,-1,0 size 4
copy ctor (nil)
trace:seh:dump_exception_type 3: flags 1 type 0x2ed853a0 {vtable=0x2ed615f0
name=.PAX ()} offsets 0,-1,0 size 4 copy ctor (nil)
trace:seh:dump_function_descr magic 19930522
trace:seh:dump_function_descr unwind table: 0x2ff33dbc 3
trace:seh:dump_function_descr 0: prev -1 func 0x2ff09610
trace:seh:dump_function_descr 1: prev 0 func (nil)
trace:seh:dump_function_descr 2: prev 0 func (nil)
trace:seh:dump_function_descr try table: 0x2ff33de4 1
trace:seh:dump_function_descr 0: start 1 end 1 catchlevel 2 catch
0x2ff33dd4 1
trace:seh:dump_function_descr 0: flags 0 offset -24 handler 0x2fedf973
type 0x2ff8e0d4 {vtable=0x2ff10140 name=.PAVCException at FObj@@ ()}
trace:seh:dump_function_descr expect list: (nil)
trace:seh:dump_function_descr flags: 00000001
trace:seh:call_catch_block matched type 0x2ed681a8 in tryblock 0 catchblock 0
...
004d:Call user32.MessageBoxW(00020154,01164dc4 L"Internal program
error:\nc:\\finereader11\\11.0.2\\build\\ocrtechnology\\0\\awl\\src\\richeditctrlawl.cpp,
470.",01549d14 L"ABBYY FineReader 11",00053011) ret=2fea69fd
--- snip ---
The app uses some RichEdit control wrapper class. The 'SetReadOnly' method
isn't very happy that Wine returns zero even though 'EM_SETREADONLY' succeeds.
Relevant part of app code:
--- snip ---
...
2FEB6E80 53 PUSH EBX
2FEB6E81 56 PUSH ESI
2FEB6E82 8BF1 MOV ESI,ECX
2FEB6E84 57 PUSH EDI
2FEB6E85 8B3D 48F1F02F MOV EDI,DWORD PTR DS:[<&FineObj.?Generat
2FEB6E8B 85F6 TEST ESI,ESI
2FEB6E8D 74 12 JZ SHORT 2FEB6EA1
2FEB6E8F 8B46 04 MOV EAX,DWORD PTR DS:[ESI+4]
2FEB6E92 85C0 TEST EAX,EAX
2FEB6E94 74 0B JZ SHORT 2FEB6EA1
2FEB6E96 50 PUSH EAX
2FEB6E97 FF15 DCF7F02F CALL DWORD PTR DS:[<&USER32.IsWindow>]
2FEB6E9D 85C0 TEST EAX,EAX
2FEB6E9F 75 1D JNZ SHORT 2FEB6EBE
2FEB6EA1 6A 00 PUSH 0
2FEB6EA3 68 CD010000 PUSH 1CD
2FEB6EA8 68 8004F22F PUSH OFFSET 2FF20480
2FEB6EAD 68 6403F12F PUSH OFFSET 2FF10364
2FEB6EB2 68 6403F12F PUSH OFFSET 2FF10364
2FEB6EB7 6A 00 PUSH 0
2FEB6EB9 FFD7 CALL EDI
2FEB6EBB 83C4 18 ADD ESP,18
2FEB6EBE 807C24 14 00 CMP BYTE PTR SS:[ESP+14],0
2FEB6EC3 8A5C24 10 MOV BL,BYTE PTR SS:[ESP+10]
2FEB6EC7 74 2E JE SHORT 2FEB6EF7
2FEB6EC9 8B4424 18 MOV EAX,DWORD PTR SS:[ESP+18]
2FEB6ECD 83F8 FF CMP EAX,-1
2FEB6ED0 75 14 JNE SHORT 2FEB6EE6
2FEB6ED2 6A 0F PUSH 0F ; Index = COLOR_BTNFACE
2FEB6ED4 FF15 B8F7F02F CALL DWORD PTR DS:[<&USER32.GetSysColor>
2FEB6EDA 50 PUSH EAX
2FEB6EDB 84DB TEST BL,BL
2FEB6EDD 0F94C0 SETZ AL
2FEB6EE0 0FB6C8 MOVZX ECX,AL
2FEB6EE3 51 PUSH ECX
2FEB6EE4 EB 0A JMP SHORT 2FEB6EF0
2FEB6EE6 84DB TEST BL,BL
2FEB6EE8 50 PUSH EAX
2FEB6EE9 0F94C2 SETZ DL
2FEB6EEC 0FB6C2 MOVZX EAX,DL
2FEB6EEF 50 PUSH EAX
2FEB6EF0 8BCE MOV ECX,ESI
2FEB6EF2 E8 C9EFFEFF CALL ?SetBackgroundColor at CRichEditCtrl@A
2FEB6EF7 8B76 04 MOV ESI,DWORD PTR DS:[ESI+4]
2FEB6EFA 6A 00 PUSH 0 ; lParam = 0
2FEB6EFC 0FB6CB MOVZX ECX,BL ;
2FEB6EFF 51 PUSH ECX ; wParam
2FEB6F00 68 CF000000 PUSH 0CF ; Msg = EM_SETREADONLY
2FEB6F05 56 PUSH ESI ; hWnd
2FEB6F06 FF15 E0F7F02F CALL DWORD PTR DS:[<&USER32.SendMessageW
2FEB6F0C 85C0 TEST EAX,EAX
2FEB6F0E 75 1B JNZ SHORT 2FEB6F2B
2FEB6F10 50 PUSH EAX ; abort, show app assert()
2FEB6F11 68 D6010000 PUSH 1D6
2FEB6F16 68 8004F22F PUSH OFFSET 2FF20480
2FEB6F1B 68 6403F12F PUSH OFFSET 2FF10364
2FEB6F20 68 6403F12F PUSH OFFSET 2FF10364
2FEB6F25 50 PUSH EAX
2FEB6F26 FFD7 CALL EDI
2FEB6F28 83C4 18 ADD ESP,18
2FEB6F2B 5F POP EDI
2FEB6F2C 5E POP ESI
2FEB6F2D 5B POP EBX
2FEB6F2E C2 0C00 RETN 0C
--- snip ---
It was fixed by commit
https://source.winehq.org/git/wine.git/commitdiff/455eca6d228a4850214345be2cccc665bece5a0e
("riched20: Return nonzero value instead of zero when EM_SETREADONLY
succeeds."). Part of Wine 1.7.22 release.
Thanks Jactry.
$ sha1sum ABBYY_FineReader_11_Chinese.exe
0f38f21905f6dcfd843014192f9b5de791d4e7c9 ABBYY_FineReader_11_Chinese.exe
$ du -sh ABBYY_FineReader_11_Chinese.exe
270M ABBYY_FineReader_11_Chinese.exe
$ wine --version
wine-1.5.18
$ wine --version
wine-5.7
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