On Fri, Dec 4, 2015 at 9:39 AM, Ganesh Ajjanagadde <gajjanaga...@gmail.com> wrote: > Recent commits 6aaac24d72a7da631173209841a3944fcb4a3309 and > 3835554bf8ed78539a3492c239f979c0ab03a15f made progress towards cleaning > up usage of the formats API, and in particular fixed possible NULL pointer > dereferences. > > This commit addresses the issue of possible resource leaks when some > intermediate > call fails. > > Tested with valgrind --leak-check=full --show-leak-kinds=all, and manual > simulation > of malloc/realloc failures. > > Fixes: CID 1338326, 1338329. > > Signed-off-by: Ganesh Ajjanagadde <gajjanaga...@gmail.com> > --- > libavfilter/vf_alphamerge.c | 14 +++++++++++--- > 1 file changed, 11 insertions(+), 3 deletions(-) > > diff --git a/libavfilter/vf_alphamerge.c b/libavfilter/vf_alphamerge.c > index 8a1ca22..79568ba 100644 > --- a/libavfilter/vf_alphamerge.c > +++ b/libavfilter/vf_alphamerge.c > @@ -61,13 +61,21 @@ static int query_formats(AVFilterContext *ctx) > int ret; > > if (!(main_formats = ff_make_format_list(main_fmts)) || > - !(alpha_formats = ff_make_format_list(alpha_fmts))) > - return AVERROR(ENOMEM); > + !(alpha_formats = ff_make_format_list(alpha_fmts))) { > + ret = AVERROR(ENOMEM); > + goto fail; > + } > if ((ret = ff_formats_ref(main_formats , &ctx->inputs[0]->out_formats)) > < 0 || > (ret = ff_formats_ref(alpha_formats, &ctx->inputs[1]->out_formats)) > < 0 || > (ret = ff_formats_ref(main_formats , &ctx->outputs[0]->in_formats)) > < 0) > - return ret; > + goto fail; > return 0; > +fail: > + av_freep(&main_formats->formats); > + av_freep(&main_formats); > + av_freep(&alpha_formats->formats); > + av_freep(&alpha_formats); > + return ret; > } > > static int config_input_main(AVFilterLink *inlink) > -- > 2.6.3 >
pushed, with the necessary modification described by Clement _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel