[FFmpeg-devel] MpegEncContext->class is never initialized

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Wed Mar 5 00:36:32 EET 2025


John Dorian:
> I discovered a crash here if log handler function tries to get the class
> name from "s"
> 
> mpeg12dec.c:
> if (get_bits_left(&s->gb) < 0) {
>          av_log(s, AV_LOG_ERROR, "overread %d\n", -get_bits_left(&s->gb));
>          return AVERROR_INVALIDDATA;
>      }
> 
> And it seems to be because MpegEncContext->class is never initialized (or
> rather it is initialized to 0) due to av_malloc_z() I assume.
> 
> So the question is, is it valid for any av object to have its av_class set
> to 0.

Here is the patch:
https://ffmpeg.org/pipermail/ffmpeg-devel/2025-March/340615.html
My reading of log.h is that it is illegal for the pointer to an AVClass
to be NULL. The default log callback handles this gracefully, so I
presume you are using a custom log callback.

- Andreas



More information about the ffmpeg-devel mailing list