[FFmpeg-devel] [PATCH 2/2] avcodec/avdct: Clear IDCTDSPContext context

James Almer jamrial at gmail.com
Tue Jan 28 04:49:49 EET 2020


On 1/27/2020 9:25 PM, Michael Niedermayer wrote:
> On Mon, Jan 27, 2020 at 06:09:28PM -0300, James Almer wrote:
>> On 1/27/2020 5:54 PM, Michael Niedermayer wrote:
>>> Fixes use of uninitialized variable and segfault
>>>
>>> Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
>>> ---
>>>  libavcodec/avdct.c | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/libavcodec/avdct.c b/libavcodec/avdct.c
>>> index 47e5f7134e..7c761cf39a 100644
>>> --- a/libavcodec/avdct.c
>>> +++ b/libavcodec/avdct.c
>>> @@ -100,7 +100,7 @@ int avcodec_dct_init(AVDCT *dsp)
>>>  
>>>  #if CONFIG_IDCTDSP
>>>      {
>>> -        IDCTDSPContext idsp;
>>> +        IDCTDSPContext idsp = {0};
>>
>> Should probably be a memset() in ff_idctdsp_init(). This is not the only
>> IDCTDSPContext user.
> 
> this would not work as IDCTDSPContext.mpeg4_studio_profile must be 
> initialized but it is also an input to ff_idctdsp_init()
> 
> an alternative to the = {0} on the caller side would be to
> simply add the mpeg4_studio_profile as an argument to ff_idctdsp_init()
> and remove it from the context, its all just internal API so we can
> easily redesign this. It should also be documented better ...
> 
> What do you suggest ?

memset(c, 0, offsetof(IDCTDSPContext, mpeg4_studio_profile)) in
ff_idctdsp_init() should workaround that without the need to add new
parameters. Just document that mpeg4_studio_profile must be at the end
of the struct, and be the first field of all those that must be
initialized before a call to ff_idctdsp_init(), in case new ones are
added in the future for whatever reason.

> 
> thx
> 
> [...]
> 
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
> 



More information about the ffmpeg-devel mailing list