[FFmpeg-devel] [PATCH V2] avutil/tx: add check against (*ctx)
John Cox
jc at kynesim.co.uk
Thu May 16 13:54:59 EEST 2019
>Ruiling Song (12019-05-16):
>> ctx is a pointer to pointer here.
>>
>> Signed-off-by: Ruiling Song <ruiling.song at intel.com>
>> ---
>> libavutil/tx.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/libavutil/tx.c b/libavutil/tx.c
>> index 934ef27c81..1690604040 100644
>> --- a/libavutil/tx.c
>> +++ b/libavutil/tx.c
>> @@ -697,7 +697,7 @@ static int gen_mdct_exptab(AVTXContext *s, int len4, double scale)
>>
>> av_cold void av_tx_uninit(AVTXContext **ctx)
>> {
>
>> - if (!ctx)
>> + if (!ctx || !(*ctx))
>
>That would protect somebody stupid enough to call av_tx_uninit(NULL)
>instead of av_tx_uninit(&var). A hard crass is completely warranted in
>this case. An assert would be acceptable.
Actually that is what the original code does. What you appear to want
is
if (!*ctx)
which protects against multi-free and is useful in that it can be called
unconditionally in cleanup code (assuming initial null assignments) and
crashes in what you describe as the "stupid" case.
>> return;
>>
>> av_free((*ctx)->pfatab);
>
>Regards,
Regards
John Cox
More information about the ffmpeg-devel
mailing list