Sorry for the the wrong feedback.
As I have limited possibilites creating executables on Windows I relied on Thomas executable for the tests. Maybe you can post a corrected version.
It is not my intention to confuse someone. Im just trying to narrow down my initial analysis. The last write access to the malicous memory address before the application dump comes from CreateFileW.
Best regards.
-------- Weitergeleitete Nachricht -------- Von: wine-bugs@winehq.org An: mst@collogia.de Betreff: [Bug 9575] IBExpert need windows native ole32.dll to run Datum: Sat, 12 Sep 2009 05:18:49 -0500
http://bugs.winehq.org/show_bug.cgi?id=9575
--- Comment #15 from Alexandre Julliard julliard@winehq.org 2009-09-12 05:18:42 --- There's no such behavior. The test is broken.
Hi,
hopefully the right explanation for the error can be found here http://bugs.winehq.org/show_bug.cgi?id=9575 . Once again I need someone with a Windows machine who can provide the following:
... HRESULT = StgOpenStorage( 'testfile.txt', ... , ppstgOpen1 ); HRESULT = StgOpenStorage( 'testfile.txt', ... , ppstgOpen2 );
I expect *ppstgOpen2 not to be NULL in Windows while being NULL under Wine.
Best regards.
Markus
Am Samstag, den 12.09.2009, 15:52 +0200 schrieb Markus Stockhausen:
Uh, too fast when sending. Additionally the result code of HRESULT is needed to get a clearer picture.
Best regards.
On 09/12/2009 04:13 PM, Markus Stockhausen wrote:
Hi Markus,
/* create the file */ SetLastError(0xdeadbeef); r = StgCreateDocfile( filename, 0x11012, 0, &stg); trace("r : %08x\n", r); trace("GLE : %d/%08x\n", GetLastError(), GetLastError()); IStorage_Release(stg);
SetLastError(0xdeadbeef); r= StgOpenStorage( filename, NULL, 0x10012, NULL, 0, &stg); trace("r : %08x\n", r); trace("GLE : %d/%08x\n", GetLastError(), GetLastError());
SetLastError(0xdeadbeef); r= StgOpenStorage( filename, NULL, 0x10012, NULL, 0, &stg); trace("r : %08x\n", r); trace("GLE : %d/%08x\n", GetLastError(), GetLastError());
Output on W2K3:
storage32.c:1498: r : 00000000 storage32.c:1499: GLE : 0/00000000 storage32.c:1504: r : 00000000 storage32.c:1505: GLE : 0/00000000 storage32.c:1509: r : 80030020 storage32.c:1510: GLE : 32/00000020
Wine:
storage32.c:1498: r : 00000000 storage32.c:1499: GLE : 0/00000000 storage32.c:1504: r : 00000000 storage32.c:1505: GLE : 0/00000000 storage32.c:1509: r : 80030020 storage32.c:1510: GLE : 32/00000020
So I get STG_E_SHAREVIOLATION and a GLE of ERROR_SHARING_VIOLATION on both W2K3 and Wine for the second call.
The grfMode is taken from the trace of running the application.
Am Samstag, den 12.09.2009, 16:50 +0200 schrieb Paul Vriens:
So I guess *ppstgOpen pointing to NULL in Wine can be the culprit.