From: Zhao Zhili <quinkblack@foxmail.com> To: ffmpeg-devel@ffmpeg.org Cc: Zhao Zhili <quinkblack@foxmail.com> Subject: [FFmpeg-devel] [PATCH 06/10] avformat/hls: fix leak of rendition when dynarray_add fail Date: Tue, 12 Apr 2022 16:15:18 +0800 Message-ID: <tencent_2069F27CCAACEA3A65C3BDB50068FE01850A@qq.com> (raw) In-Reply-To: <20220412081522.43246-1-quinkblack@foxmail.com> --- libavformat/hls.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/libavformat/hls.c b/libavformat/hls.c index b5cdf158c6..3ed6007d0d 100644 --- a/libavformat/hls.c +++ b/libavformat/hls.c @@ -556,7 +556,10 @@ static struct rendition *new_rendition(HLSContext *c, struct rendition_info *inf if (!rend) return NULL; - dynarray_add(&c->renditions, &c->n_renditions, rend); + if (av_dynarray_add_nofree(&c->renditions, &c->n_renditions, rend) < 0) { + av_free(rend); + return NULL; + } rend->type = type; strcpy(rend->group_id, info->group_id); @@ -566,9 +569,14 @@ static struct rendition *new_rendition(HLSContext *c, struct rendition_info *inf /* add the playlist if this is an external rendition */ if (info->uri[0]) { rend->playlist = new_playlist(c, info->uri, url_base); - if (rend->playlist) - dynarray_add(&rend->playlist->renditions, - &rend->playlist->n_renditions, rend); + if (rend->playlist) { + if (av_dynarray_add_nofree(&rend->playlist->renditions, + &rend->playlist->n_renditions, + rend) < 0) { + /* Don't free rend since it's owned by c->renditions */ + return NULL; + } + } } if (info->assoc_language[0]) { -- 2.31.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
next prev parent reply other threads:[~2022-04-12 8:16 UTC|newest] Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top [not found] <20220412081522.43246-1-quinkblack@foxmail.com> 2022-04-12 8:15 ` [FFmpeg-devel] [PATCH 02/10] avformat/hls: fix leak of init section " Zhao Zhili 2022-04-12 8:15 ` [FFmpeg-devel] [PATCH 03/10] avformat/hls: extract free_playlist method Zhao Zhili 2022-04-12 8:15 ` [FFmpeg-devel] [PATCH 04/10] avformat/hls: fix leak of playlist when dynarray_add fail Zhao Zhili 2022-04-12 8:15 ` [FFmpeg-devel] [PATCH 05/10] avformat/hls: fix leak of variant " Zhao Zhili 2022-04-12 8:42 ` Steven Liu 2022-04-12 8:56 ` "zhilizhao(赵志立)" 2022-04-12 8:15 ` Zhao Zhili [this message] 2022-04-12 8:15 ` [FFmpeg-devel] [PATCH 07/10] avformat/hls: extract free_segment method Zhao Zhili 2022-04-12 8:15 ` [FFmpeg-devel] [PATCH 08/10] avformat/hls: fix leak of segments when dynarray_add fail Zhao Zhili 2022-04-12 8:15 ` [FFmpeg-devel] [PATCH 09/10] avformat/hls: do error check in add_renditions_to_variant Zhao Zhili 2022-04-12 8:15 ` [FFmpeg-devel] [PATCH 10/10] avformat/hls: check dynarray_add error when add stream Zhao Zhili
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=tencent_2069F27CCAACEA3A65C3BDB50068FE01850A@qq.com \ --to=quinkblack@foxmail.com \ --cc=ffmpeg-devel@ffmpeg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git