WineHQ
Bug Tracking Database – Bug 10528

 Bugzilla

 

Last modified: 2014-02-20 12:37:29 UTC  

mdiviewer unusable

Bug 10528 - mdiviewer unusable
mdiviewer unusable
Status: CLOSED FIXED
AppDB: Show Apps affected by this bug
Product: Wine
Classification: Unclassified
Component: user32
0.9.49.
x86-64 Linux
: P2 normal
: ---
Assigned To: Mr. Bugs
http://www.hot.ee/mdiviewer/
: download, patch
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2007-11-21 17:05 UTC by Raphael
Modified: 2014-02-20 12:37 UTC (History)
6 users (show)

See Also:
Regression SHA1:
Fixed by SHA1:
Distribution: ---
Staged patchset:


Attachments
+relay (15.51 KB, application/x-gzip)
2011-08-31 19:06 UTC, Bruno Jesus
Details
SetDlgItemText tests (1.70 KB, patch)
2011-11-14 21:38 UTC, Bruno Jesus
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Raphael 2007-11-21 17:05:01 UTC
After installling mdiviewer (see http://bugs.winehq.org/show_bug.cgi?id=10523 for installation problems), the application is unusable.

Specifically, when Open is chosen the application seems to go into a busy loop for a minute or so then a window appears that shows what directory you are in. You can't them navigate through the file system and are stuck.

The only output is

fixme:ole:OleLoadPictureEx (0xa4e9bc,19982,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=0,y=0,f=0,0x33fae8), partially implemented.
fixme:atl:AtlModuleInit SEMI-STUB (0x2e857e08 0x2e852e38 0x2e800000)
fixme:atl:AtlIPersistStreamInit_Load (0xa4e9bc, 0x2e853c38, 0x131498, 0x131498)
fixme:atl:AtlModuleRegisterWndClassInfoW 0x2e857e08 0x2e8543c0 0x131510 semi-stub
fixme:ole:OLEPictureImpl_SaveAsFile (0x121388)->(0x133fa8, 0, (nil)), hacked stub.
err:heap:HEAP_ValidateInUseArena Heap 0x110000: in-use arena 0x134080 next block has PREV_FREE flag
err:ole:ITypeInfo_fnInvoke did not find member id -514, flags 0x2!
fixme:atl:AtlModuleRegisterWndClassInfoW 0x2e857e08 0x2e8543c0 0x131510 semi-stub
err:ole:ITypeInfo_fnInvoke did not find member id -514, flags 0x2!
err:ole:ITypeInfo_fnInvoke did not find member id -514, flags 0x2!
err:ole:ITypeInfo_fnInvoke did not find member id -514, flags 0x2!

[this last line is repeated hundreds of times]


I am not sure which component this should be in so I have most likely chosen it wrong (again).

Raphael
Comment 1 Lei Zhang 2007-11-21 19:04:51 UTC
Confirming

Please choose wine-misc as the component if you're not sure.
Comment 2 Louis Lenders 2007-11-22 02:06:27 UTC
Hi, i did a bit of testing with this application. For now there seem to be 2 bugs:

1. The file open dialog makes the application hang 

2. I couldn't open the sample file, it just didn't show the file

1. The first bug seems to be caused by:
0009:Call user32.SetDlgItemTextW(0002002e,00000480,001a4450 L"  

                                                                                                                                                                                                                                                                                                           "...) ret=780512c7

An extremely large string, only filled with spaces, is passed into SetDlgItemTextW. I don't know if this is because of another bug in wine, or because of a bug in the app. The size of the string is 59000 bytes! With a stupid hack like below, it's easily to work around the bug.

2. After that, the sample file still wouldn't open. Using native atl.dll worked around that bug. Then the application seems to be functional further.

Hack:
diff --git a/dlls/user32/dialog.c b/dlls/user32/dialog.c
index d04226b..e7c267d 100644
--- a/dlls/user32/dialog.c
+++ b/dlls/user32/dialog.c
@@ -1287,8 +1287,8 @@ BOOL WINAPI SetDlgItemTextA( HWND hwnd, INT id, LPCSTR lpString )
  *             SetDlgItemTextW (USER32.@)
  */
 BOOL WINAPI SetDlgItemTextW( HWND hwnd, INT id, LPCWSTR lpString )
-{
-    return SendDlgItemMessageW( hwnd, id, WM_SETTEXT, 0, (LPARAM)lpString );
+{   if(strlenW(lpString) > 10000)  lpString = 0;
+    return (BOOL)SendDlgItemMessageW( hwnd, id, WM_SETTEXT, 0, (LPARAM)lpString );
 }

Comment 3 John Pye 2008-01-02 20:08:07 UTC
I can reproduce this bug on Ubuntu 7.10 with Wine 0.9.46.

The MDI2PDF Convertor is downloaded from http://www.bugysoft.com/
Comment 4 Dan Kegel 2008-01-03 06:02:02 UTC
Sounds like we need a conformance test case for
big strings and SetDlgItemText.

Please open a new bug for the ATL problem.
Comment 5 Austin English 2008-12-06 18:41:24 UTC
Still present in git (crashes though now, not hang). Louis's patch still fixes the open dialog.
Comment 6 Jerome Leclanche 2009-10-25 10:26:18 UTC
(In reply to comment #5)
> Still present in git (crashes though now, not hang). Louis's patch still fixes
> the open dialog.

Still present in wine-1.1.32. Hangs, then crashes with:
X Error of failed request:  BadRequest (invalid request code or no such operation)
  Major opcode of failed request:  0 ()
  Serial number of failed request:  17351
  Current serial number in output stream:  17350
Comment 7 Vijay Kamuju 2011-08-31 16:40:43 UTC
please test with latest git
Comment 8 Bruno Jesus 2011-08-31 19:06:21 UTC
Created attachment 36186 [details]
+relay

Still present in 1.3.27 using MDI2PDF, download link http://www.bugysoft.com/setup.exe

Pressing the Open File hangs the application and after about 1 minute it crashes, the crash log is attached. Same long string symptom from comment #2.
Comment 9 Bruno Jesus 2011-11-14 21:38:34 UTC
Created attachment 37497 [details]
SetDlgItemText tests

I have created a series of tests for SetDlgItemText and they seem not to crash. Even with 100K of spaces in the string. So I'm not sure the problem is in that function or if my test is invalid. Can anyone take a look at it?
Comment 10 Austin English 2014-02-18 13:56:56 UTC
austin@aw25 ~ $ sha1sum setup.exe 
faf176e9e624611ebacb12da14a66c10a5a40be8  setup.exe
austin@aw25 ~ $ du -h setup.exe 
11M	setup.exe

opens the provided example file fine in wine-1.7.12-91-gadd85f4 (and 1.6). Please retest.
Comment 11 Bruno Jesus 2014-02-18 21:14:10 UTC
Indeed using the original installer I can see the crash in wine 1.3.22 but not in wine 1.7.12.

https://web.archive.org/web/20111015221650/http://bugysoft.com/setup.exe

sha1sum 472ba82aa82628b018ba1ce32504b87854618b5c setup.exe

There is another problem that desires a new bug. The problem is that the name field gets filled with thousands of blank spaces, but I didn't test in Windows to check if it happens there.

To get the 2011 version of the program to run it's required to change the clock back to 2011.
Comment 12 Alexandre Julliard 2014-02-20 12:37:29 UTC
Closing bugs fixed in 1.7.13.


Privacy Policy
If you have a privacy inquiry regarding this site, please write to [email protected]

Hosted By CodeWeavers