On 01/11/2016 01:46 AM, Michael Niedermayer wrote:
On Sun, Jan 10, 2016 at 04:04:47AM +0100, Mats Peterson wrote:
How about this one, Michael? Rather than using the obviously
dangerous av_realloc() it uses av_malloc() to allocate new memory
for the private data, then copies the private data to it, frees the
pointer to the original private data, and finally sets
track->codec->priv_data to the newly allocated memory.

that documentation is misleading, av_malloc() is if one is really
pedantic not safe to be passed to av_free or av_realloc()
if one isnt pedantic it safe to be passed to both

but of course theres nothing wrong with seperating them if you want
to seperate them in your code. Theres a small theretical chance that
some future platform will not work with mixed aligned memory and
realloc but would be able to mix both with free()

patch applied

thanks


Thanks, Michael. But I don't understand what you mean here. Is it *my* documentation that is misleading? I said that av_realloc() is dangerous because of the fact that the allocation of the binary data in matroskadec.c is done with av_fast_padded_malloc(), which in turn uses av_malloc(), and which might use memalign(), of which the pointer is apparently not safe to pass to av_malloc(), according to the FFmpeg documentation.

What do you mean by "separating them" by the way? I haven't separated anything as far as I know.

Mats

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to