Working on avifil32, sudden "non enough memory" error

Julius Schwartzenberg julius.schwartzenberg at gmail.com
Tue Nov 17 17:25:29 CST 2009


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



More information about the wine-devel mailing list