[FFmpeg-devel] [PATCH] lavc/options: don't copy priv context when it is not AVOption object

Lukasz Marek lukasz.m.luki2 at gmail.com
Wed Dec 3 01:24:55 CET 2014


On 03.12.2014 01:15, Michael Niedermayer wrote:
> On Wed, Dec 03, 2014 at 12:06:47AM +0100, Lukasz Marek wrote:
>> This prevents potential crash when opt API is used without a class.
>>
>> Signed-off-by: Lukasz Marek <lukasz.m.luki2 at gmail.com>
>> ---
>>   libavcodec/options.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/libavcodec/options.c b/libavcodec/options.c
>> index 7f9fb07..42ef754 100644
>> --- a/libavcodec/options.c
>> +++ b/libavcodec/options.c
>> @@ -196,7 +196,7 @@ int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src)
>>
>>       dest->priv_data       = orig_priv_data;
>>
>> -    if (orig_priv_data)
>> +    if (orig_priv_data && src->codec && src->codec->priv_class)
>>           av_opt_copy(orig_priv_data, src->priv_data);
>>
>
> "&& src->codec->priv_class" <--- LGTM
> the src->codec check is probably ok too but is it NULL ever ?

after avcodec_alloc_context3(NULL)?
IIRC there was a patch recently that set codec in avcodec_alloc_context3 
(via avcodec_get_context_defaults3) when provided. Maybe after that it 
is not so common case. But still when allocated with NULL then you have 
NULL there. src context doesn't have to be open neither.



More information about the ffmpeg-devel mailing list