On 12/4/15, 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 1338330. > > Signed-off-by: Ganesh Ajjanagadde <gajjanaga...@gmail.com> > --- > libavfilter/af_channelmap.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/libavfilter/af_channelmap.c b/libavfilter/af_channelmap.c > index 9e95a98..dfe3d48 100644 > --- a/libavfilter/af_channelmap.c > +++ b/libavfilter/af_channelmap.c > @@ -292,14 +292,22 @@ static int channelmap_query_formats(AVFilterContext > *ctx) > int ret; > > layouts = ff_all_channel_layouts(); > + if (!layouts) { > + ret = AVERROR(ENOMEM); > + goto fail; > + } > if ((ret = ff_add_channel_layout (&channel_layouts, > s->output_layout )) < 0 || > (ret = ff_set_common_formats (ctx , > ff_planar_sample_fmts() )) < 0 || > (ret = ff_set_common_samplerates (ctx , > ff_all_samplerates() )) < 0 || > (ret = ff_channel_layouts_ref (layouts , > &ctx->inputs[0]->out_channel_layouts)) < 0 || > (ret = ff_channel_layouts_ref (channel_layouts , > &ctx->outputs[0]->in_channel_layouts)) < 0) > - return ret; > + goto fail; > > return 0; > +fail: > + av_freep(&layouts->channel_layouts); > + av_freep(&layouts); > + return ret; > } > > static int channelmap_filter_frame(AVFilterLink *inlink, AVFrame *buf) > -- > 2.6.3 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >
Sure. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel