Marcus Meissner wrote:
On Mon, Nov 16, 2009 at 10:52:04AM +0100, Julius Schwartzenberg wrote:
Dan Kegel wrote:
Julius wrote:
With one file however (GOODTIME.AVI from the win95 cd) I get this
error after about a second:
err:heap:HEAP_ValidateInUseArena Heap 0x110000: in-use arena 0x184420
next block has PREV_FREE flag
non enough memory

I have no idea where this comes from and why it happens. (It appears to
be unrelated to the memcpy call in avifile.c around line 1114.) With
+heap I also get this before the error:
HIGHPERF/GOODTIME.AVI: heap.c:403: HEAP_GetPtr: Controletest '0' faalt.
(the assert fails)
Sounds like heap corruption.  You might want to cut down the
file to the shortest one that causes the crash, then go
after it (possibly using valgrind or the like) to look for
the error.
With valgrind I was able to find the problem actually happens when
AVIFILE_ReadBlock is called and a new block is about to be read.
There doesn't seem to be anything special about this however, as for
the previous blocks (and different files) it works just fine.

You could insert
        HeapValidate(GetProcessHeap(),0,0);FIXME("at place x\n");
at multiple interesting places in your code and +heap will then trigger
on when the corruption happens.

Thanks! I was able to find the problem. Indeed something going wrong with the size. It appears I need to add another hack and come up with some extremely good test cases......

Regards,
Julius


Reply via email to