ole32: Add a test for freeing the parent of an open stream.

Alexandre Julliard julliard at winehq.org
Wed Nov 18 05:10:04 CST 2009


"Vincent Povirk" <vincent at codeweavers.com> writes:

> From 1d583fc07db661bd0f0d0d00ea82c6208c3b744f Mon Sep 17 00:00:00 2001
> From: Vincent Povirk <vincent at codeweavers.com>
> Date: Tue, 17 Nov 2009 11:20:34 -0600
> Subject: [PATCH 4/7] ole32: Add a test for freeing the parent of an open stream.

It doesn't work here:

../../../tools/runtest -q -P wine -M ole32.dll -T ../../.. -p ole32_test.exe.so storage32.c && touch storage32.ok
wine: Unhandled page fault on read access to 0x454556d6 at address 0x687dc2dd (thread 0045), starting debugger...
Unhandled exception: page fault on read access to 0x454556d6 in 32-bit code (0x687dc2dd).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:687dc2dd ESP:0032f980 EBP:0032f9b8 EFLAGS:00010216(  R- --  I   -A-P- )
 EAX:45455246 EBX:688587e4 ECX:00110058 EDX:00000100
 ESI:45455246 EDI:00000011
Stack dump:
0x0032f980:  00000000 00000100 00000000 00000080
0x0032f990:  0032f9dc 0032f9b0 0032f9b8 7bc45af1
0x0032f9a0:  00000040 00040000 00141c80 7bc346cf
0x0032f9b0:  00141c58 688587e4 0032fa68 687dc339
0x0032f9c0:  45455246 00000002 0032f9dc 00000000
0x0032f9d0:  00000000 0032f9dc 00000000 00000000
Backtrace:
=>0 0x687dc2dd StorageImpl_ReadRawDirEntry+0x3d(This=0x45455246, index=256, buffer="") [/home/julliard/wine/wine/dlls/ole32/storage32.c:3002] in ole32 (0x0032f9b8)
  1 0x687dc339 StorageImpl_ReadDirEntry+0x39(This=0x45455246, index=2, buffer=0x32fa98) [/home/julliard/wine/wine/dlls/ole32/storage32.c:3127] in ole32 (0x0032fa68)
  2 0x687d8268 StgStreamImpl_SetSize+0x98(iface=<register ESI not in topmost frame>, libNewSize=<register EDI not in topmost frame>) [/home/julliard/wine/wine/dlls/ole32/stg_stream.c:614] in ole32 (0x0032fb28)
  3 0x687d86ee StgStreamImpl_Write+0x1ce(iface=0x141cd8, pv=0x6867cadc, cb=17, pcbWritten=<register EDI not in topmost frame>) [/home/julliard/wine/wine/dlls/ole32/stg_stream.c:420] in ole32 (0x0032fb78)
  4 0x68662ea2 test_parent_free+0x222() [/home/julliard/wine/wine/dlls/ole32/tests/storage32.c:1322] in ole32_test (0x0032fbc8)
  5 0x6866deea func_storage32+0x14ca() [/home/julliard/wine/wine/dlls/ole32/tests/storage32.c:2470] in ole32_test (0x0032fd98)
  6 0x68671b40 run_test+0x130(name="storage32.c") [/home/julliard/wine/wine/dlls/ole32/tests/../../../include/wine/test.h:537] in ole32_test (0x0032fdd8)
  7 0x68671d2e main+0x11e(argc=<register ECX not in topmost frame>, argv=<register ECX not in topmost frame>) [/home/julliard/wine/wine/dlls/ole32/tests/../../../include/wine/test.h:586] in ole32_test (0x0032fe88)
  8 0x686727b4 __wine_spec_exe_entry+0x84(peb=0x7ffdf000) [/home/julliard/wine/wine/dlls/winecrt0/exe_entry.c:36] in ole32_test (0x0032feb8)
  9 0x7b8768a5 start_process+0x55(peb=<register ESI not in topmost frame>) [/home/julliard/wine/wine/dlls/kernel32/process.c:1025] in kernel32 (0x0032fee8)
  10 0x7bc6de64 call_thread_func+0xc() in ntdll (0x0032fef8)
  11 0x7bc6e080 call_thread_entry_point+0x70(entry=0x7b876850, arg=0x7ffdf000) [/home/julliard/wine/wine/dlls/ntdll/signal_i386.c:2342] in ntdll (0x0032ffc8)
  12 0x7bc4b20a in ntdll (+0x3b20a) (0x0032ffe8)
  13 0x68027e4d wine_call_on_stack+0x1d() in libwine.so.1 (0x00000000)
0x687dc2dd StorageImpl_ReadRawDirEntry+0x3d [/home/julliard/wine/wine/dlls/ole32/storage32.c:3002] in ole32: movl	0x490(%eax),%eax
3002	  hr = BlockChainStream_ReadAt(

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list