Re: Stack corruption in dsound.c

wylda at volny.cz wylda at volny.cz
Thu May 6 04:18:12 CDT 2010


> > Allocates me 3E0 (rounded 3d4) bytes filled with
> > zeros, begining at adr1 and this:
> > a) adr1 should be "relatively close" to the 0x00110000
> > b) adr1 should be same as adr2
> >

> You can't really make those assumptions, though I guess
> they may
> sometimes be true in practice.
> 

OK, i lets start from the beginning. I did +relay,+heap and found:

trace:heap:RtlAllocateHeap (0x4df4000,70000062,00000413): returning 0x4edded0
0018:Ret  ntdll.RtlAllocateHeap() retval=04edded0 ret=78134d83
0023:Ret  KERNEL32.GetCurrentThreadId() retval=00000023 ret=016633ec
0023:Call KERNEL32.GetTickCount() ret=016669e8
0023:Ret  KERNEL32.GetTickCount() retval=00051289 ret=016669e8
0023:Call KERNEL32.GetCurrentThreadId() ret=0166342f
0023:Ret  KERNEL32.GetCurrentThreadId() retval=00000023 ret=0166342f
0023:Call KERNEL32.InterlockedExchange(020876a8,00000001) ret=0166343b
0023:Ret  KERNEL32.InterlockedExchange() retval=00000000 ret=0166343b
0023:Call KERNEL32.GetCurrentThreadId() ret=01663472
0023:Ret  KERNEL32.GetCurrentThreadId() retval=00000023 ret=01663472
0023:Call KERNEL32.Sleep(00000032) ret=016632f9
trace:heap:RtlAllocateHeap (0x4df4000,70000062,00000047): returning 0x4e93558
0018:Ret  ntdll.RtlAllocateHeap() retval=04e93558 ret=78134d83
0018:Call ntdll.RtlAllocateHeap(04df4000,00000000,00000113) ret=78134d83
trace:heap:RtlAllocateHeap (0x4df4000,70000062,00000113): returning 0x4e744f8
0018:Ret  ntdll.RtlAllocateHeap() retval=04e744f8 ret=78134d83
0018:Call ntdll.RtlAllocateHeap(04df4000,00000000,00000047) ret=78134d83
trace:heap:RtlFreeHeap (0x110000,70000062,0x164740): returning TRUE
0022:Ret  ntdll.RtlFreeHeap() retval=00000001 ret=7e1d68e8
0022:Call user32.WindowFromDC(00000534) ret=7e0f9ee7
0022:Ret  user32.WindowFromDC() retval=00040056 ret=7e0f9ee7
0022:Call KERNEL32.TlsGetValue(00000008) ret=7e0fa801
0022:Ret  KERNEL32.TlsGetValue() retval=19dfcfe0 ret=7e0fa801
0022:Call gdi32.wglGetCurrentContext() ret=7e0faeea
0022:Ret  gdi32.wglGetCurrentContext() retval=19a66a00 ret=7e0faeea
0022:Call KERNEL32.TlsGetValue(00000008) ret=7e0fa801
0022:Ret  KERNEL32.TlsGetValue() retval=19dfcfe0 ret=7e0fa801
trace:heap:RtlAllocateHeap (0x4df4000,70000062,00000047): returning 0x4e997d0
0018:Ret  ntdll.RtlAllocateHeap() retval=04e997d0 ret=78134d83

0018:Call ntdll.RtlAllocateHeap(04df4000,00000000,00000213) ret=78134d83
err:heap:HEAP_ValidateInUseArena Heap 0x110000: block 0x19543568 tail
overwritten at 0x1954356d (byte 0/19 == 0xcf)

trace:heap:RtlAllocateHeap (0x110000,70000062,00000100): returning 0x19008c58
err:heap:HEAP_ValidateInUseArena Heap 0x110000: block 0x19543568 tail
overwritten at 0x1954356d (byte 0/19 == 0xcf)

* The first 0022: and 0018: are thread numbers?
* Can be the problem in 0018: be caused by different thread?
* What is that 0/19?
* Can i make assumption, that it was overwritten by gdi32.wglGetCurrentContext()?





More information about the wine-devel mailing list