On Tue, Jun 17, 2025 at 10:14:16PM +0800, Lidong Yan wrote: > In sap_write_header(), ff_format_set_url() assign new allocated new_url > to contexts[i]->url but forgot to free it later. Add two loops to free > contexts[i]->url before av_free(context). > > Signed-off-by: Lidong Yan <[email protected]> > --- > libavformat/sapenc.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/libavformat/sapenc.c b/libavformat/sapenc.c > index 87a834a8d8..3ba7f16022 100644 > --- a/libavformat/sapenc.c > +++ b/libavformat/sapenc.c > @@ -233,6 +233,9 @@ static int sap_write_header(AVFormatContext *s) > ret = AVERROR_INVALIDDATA; > goto fail; > } > + for (i = 0; i < s->nb_streams; i++) > + if (contexts[i]) > + av_free(contexts[i]->url); > av_freep(&contexts); > av_log(s, AV_LOG_VERBOSE, "SDP:\n%s\n", &sap->ann[pos]); > pos += strlen(&sap->ann[pos]); > @@ -247,6 +250,9 @@ static int sap_write_header(AVFormatContext *s) > return 0; > > fail: > + for (i = 0; i < s->nb_streams; i++) > + if (contexts[i]) > + av_free(contexts[i]->url); > av_free(contexts); > sap_write_close(s); > return ret;
this can be factored like:
like
+ ret = 0;
fail:
+ for (i = 0; i < s->nb_streams; i++)
+ if (contexts[i])
+ av_free(contexts[i]->url);
av_free(contexts);
+ if (ret < 0)
sap_write_close(s);
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Some people wanted to paint the bikeshed green, some blue and some pink.
People argued and fought, when they finally agreed, only rust was left.
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list [email protected] https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
