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".

Reply via email to