[FFmpeg-devel] [PATCH] Fix segv when decoding gray8
Michael Niedermayer
michaelni
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,
>>>>>
>>>>> $subject.
>>>>>
>>>>> frame->data[1] 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
>>>>> small
>>>>> 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
>>>> they
>>>> 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)
>>> _anyway_
>>> since the data buffer is not big enough, since it comes from the demuxer
>>> itself.
>>> So either, the picture needs to be copied and the palette generated, or
>>> we
>>> skip the palette generation.
>>
>> maybe iam missing something but why cant data[1] that contains the
>> palette
>> point to some pal[256] from the context while data[0] would point to the
>> buffer that originates from the demuxer?
>
> Yes, that should be ok assuming there is instructions about only freeing
> data[0], this is what avpicture_free does, but it seems not documented
> anywhere.
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
raw_close_decoder()
[...]
--
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
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100603/b5d04df4/attachment.pgp>
More information about the ffmpeg-devel
mailing list