Working on avifil32, sudden "non enough memory" error

Marcus Meissner meissner at suse.de
Mon Nov 16 03:59:07 CST 2009


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.

Ciao, Marcus



More information about the wine-devel mailing list