[Bug 6088] access violation in BioEdit
Wine Bugs
wine-bugs at winehq.org
Sun Apr 1 17:35:38 CDT 2007
http://bugs.winehq.org/show_bug.cgi?id=6088
------- Additional Comments From focht at gmx.net 2007-01-04 17:35 -------
Hello,
the executable is packed/protected with Petite 2.x -> must be
unpacked/deprotected before doing anything useful with it :)
With that humbug gone it boils down to following..
--- snip crash ---
0009:trace:ole:OleInitialize ((nil))
0009:trace:ole:CoInitializeEx ((nil), 2)
0009:trace:ole:OleInitialize () - Initializing the OLE libraries
0009:trace:ole:OLEClipbrd_Initialize ()
0009:trace:ole:RegisterDragDrop (0x10058,0xadf1f4)
0009:trace:ole:OleUninitialize ()
0009:trace:ole:OleUninitialize () - Freeing the last reference count
0009:trace:ole:OLEClipbrd_UnInitialize ()
0009:trace:ole:OLEClipbrd_Destroy ()
0009:trace:ole:OLEClipbrd_Destroy () - Destroying clipboard data object.
0009:trace:seh:raise_exception code=c0000005 flags=0 addr=0x10
0009:trace:seh:raise_exception info[0]=00000000
0009:trace:seh:raise_exception info[1]=00000010
0009:trace:seh:raise_exception eax=00adf1f4 ebx=6094546c ecx=6094e54c
edx=00a9ca90 esi=001845e0 edi=00acdcec
0009:trace:seh:raise_exception ebp=0034f6f0 esp=0034f6d4 cs=0073 ds=007b
es=007b fs=0033 gs=003b flags=00210206
--- snip crash ---
>From what i've seen it crashes in Drag and Drop uninit in OleUninitialize()
shutdown sequence, e.g. OLEDD_UnInitialize()
--- snip dlls/ole32/ole2.c ---
static void OLEDD_UnInitialize(void)
{
/*
* Simply empty the list.
*/
while (!list_empty(&targetListHead))
{
DropTargetNode* curNode;
curNode = LIST_ENTRY(list_head(&targetListHead), DropTargetNode, entry);
OLEDD_FreeDropTarget(curNode); <--- *boom*
}
}
--- snip dlls/ole32/ole2.c ---
OLEDD_FreeDropTarget -> IDropTarget_Release(dropTargetInfo->dropTarget);
I put in a trace directly before:
--- snip ---
0009:trace:ole:OLEDD_FreeDropTarget (0x184608, 0xadf1f4)
--- snip ---
Interface pointer matches with the one from RegisterDragDrop().
The only other internal function call which explicitly decrements refcount is
RevokeDragDrop() which isnt called.
My guess: either the client itself or some other drop target code in wine does
Release() somewhere -> vtable ptr deref on shutdown -> crash.
For verification i incremented the refcount twice in RegisterDragDrop() (2x
IDropTarget_AddRef(pDropTarget) ).
Seems it helped, doesnt crash in ole shutdown code.
Regards
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
More information about the wine-bugs
mailing list