FYI: hls, dashdec do the same av_freep(). Doesn't make this right, but saying that was where I used as an example (so they should probably fixed too?)
On Sat, Mar 2, 2024 at 10:17 AM Andreas Rheinhardt < andreas.rheinha...@outlook.com> wrote: > James Almer: > > On 3/2/2024 12:47 PM, Andreas Rheinhardt wrote: > >> Andreas Rheinhardt: > >>> Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@outlook.com> > >>> --- > >>> How has this slipped through? > >> > >> Answer: AVIOContext starts with an AVClass* that is unset when using > >> ffio_init_context(). Therefore the av_freep() leads to freeing of a NULL > >> pointer which does not segfault. > > > > Would setting s->av_class to &ff_avio_options in ffio_init_context() > > prevent this from happening again? > > > > ff_avio_options is not an AVClass, so this is wrong; setting it to > ff_avio_class would also be wrong, because said class is only to be used > with the URLProtocol-based AVIOContexts (the child_next and > child_class_iterate callbacks are designed for this; the former returns > the AVIOContext's opaque, believing it to point to an URLContext, yet in > general it need not point to an AVClass-enabled struct at all). > > In fact, ff_avio_options etc. should be moved to avio.c. I'll look into > this. > > >> > >>> Btw: This patchset is based upon code inspection, not on reading > >>> actual files. > >>> > >>> libavformat/dvdvideodec.c | 1 - > >>> 1 file changed, 1 deletion(-) > >>> > >>> diff --git a/libavformat/dvdvideodec.c b/libavformat/dvdvideodec.c > >>> index ef2d4e6df4..f2f23affb2 100644 > >>> --- a/libavformat/dvdvideodec.c > >>> +++ b/libavformat/dvdvideodec.c > >>> @@ -1202,7 +1202,6 @@ static void > >>> dvdvideo_subdemux_close(AVFormatContext *s) > >>> DVDVideoDemuxContext *c = s->priv_data; > >>> av_freep(&c->mpeg_pb.pub.buffer); > >>> - av_freep(&c->mpeg_pb); > >>> avformat_close_input(&c->mpeg_ctx); > >>> } > >>> > >> > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".