[FFmpeg-devel] [PATCH] Fix segv when decoding gray8
Thu Jun 3 23:22:10 CEST 2010
On Thu, Jun 03, 2010 at 01:57:22PM -0700, Baptiste Coudurier wrote:
> On 06/03/2010 01:48 PM, Michael Niedermayer wrote:
>> On Thu, Jun 03, 2010 at 12:11:41PM -0700, Baptiste Coudurier wrote:
>>> On 06/03/2010 03:36 AM, Michael Niedermayer wrote:
>>>> On Wed, Jun 02, 2010 at 06:39:26PM -0700, Baptiste Coudurier wrote:
>>>>> Hi guys,
>>>>> frame->data is set by avpicture_fill which is called with buf passed
>>>>> from the demuxer.
>>>>> However, for gray8 the data stored is only width*height, so is too
>>>>> for the palette, and will segv, memcpying.
>>>>> I'm not sure what is the right fix here, buf is supposed to be const.
>>>> as this case can only arrise from use of deprecated (and buggy) palette
>>>> passing API, the correct (long term goal) is to change all codecs so
>>>> finally stop using this highly unpredictable race condition ridden api.
>>>> until then, your patch may be ok
>>> I don't think this is related to the API.
>>> You cannot generate the palette for gray8 (according to pixfmt.h)
>>> since the data buffer is not big enough, since it comes from the demuxer
>>> So either, the picture needs to be copied and the palette generated, or
>>> skip the palette generation.
>> maybe iam missing something but why cant data that contains the
>> point to some pal from the context while data would point to the
>> buffer that originates from the demuxer?
> Yes, that should be ok assuming there is instructions about only freeing
> data, this is what avpicture_free does, but it seems not documented
maybe iam silly but i dont think the frames returned by the raw decoder are
freed by avpicture_free() but rather by av_free_packet() or in
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Republics decline into democracies and democracies degenerate into
despotisms. -- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 189 bytes
Desc: Digital signature
More information about the ffmpeg-devel