[FFmpeg-devel] [PATCH 2/3] avcodec/mpeg12: Don't pretend reading dct_dc_size_* VLCs can fail

Andreas Rheinhardt andreas.rheinhardt at gmail.com
Sat Oct 10 01:08:20 EEST 2020


Michael Niedermayer:
> On Thu, Oct 08, 2020 at 09:53:12PM +0200, Andreas Rheinhardt wrote:
>> It can't because the corresponding trees don't have any loose ends.
>>
>> Removing the checks also removed an instance of av_log(NULL (with a
>> nonsense message) from the codebase.
>>
>> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
>> ---
>>  libavcodec/mdec.c      | 2 --
>>  libavcodec/mpeg12.h    | 4 ----
>>  libavcodec/mpeg12dec.c | 4 ----
>>  3 files changed, 10 deletions(-)
> 
> It is possible to encode nonsensical dc differnces, these could be checked
> for and trigger errors. Not in the current codebase no, but one could add
> a check for it
> Without such checks, your patch is probably ok
> 
It is not possible to encode a nonsense difference. The standard has a
requirement that predictor (last_dc[component] in our code) + diff be in
a certain range, but that is a check that should be performed at the
place where the addition is performed; decode_dc() (in its current form)
simply lacks the context to know whether the diff it parsed will make
the sum violate this requirement.

- Andreas


More information about the ffmpeg-devel mailing list