On Tue, Jan 5, 2016 at 1:54 PM, Paul B Mahol <one...@gmail.com> wrote: > On 1/5/16, Ganesh Ajjanagadde <gajja...@mit.edu> wrote: >> On Tue, Jan 5, 2016 at 12:11 PM, Paul B Mahol <one...@gmail.com> wrote: >>> Signed-off-by: Paul B Mahol <one...@gmail.com> >>> --- >>> libavfilter/formats.c | 4 ++++ >>> 1 file changed, 4 insertions(+) >>> >>> diff --git a/libavfilter/formats.c b/libavfilter/formats.c >>> index a2b19e7..f12dcf4 100644 >>> --- a/libavfilter/formats.c >>> +++ b/libavfilter/formats.c >>> @@ -518,6 +518,8 @@ void ff_formats_changeref(AVFilterFormats **oldref, >>> AVFilterFormats **newref) >>> int ret = ref_fn(fmts, &ctx->inputs[i]->out_fmts); \ >>> if (ret < 0) { \ >>> unref_fn(&fmts); \ >>> + av_freep(&fmts->list); \ >>> + av_freep(&fmts); \ >>> return ret; \ >>> } \ >>> count++; \ >>> @@ -528,6 +530,8 @@ void ff_formats_changeref(AVFilterFormats **oldref, >>> AVFilterFormats **newref) >>> int ret = ref_fn(fmts, &ctx->outputs[i]->in_fmts); \ >>> if (ret < 0) { \ >>> unref_fn(&fmts); \ >>> + av_freep(&fmts->list); \ >>> + av_freep(&fmts); \ >>> return ret; \ >>> } \ >>> count++; \ >> >> This is a good effort, and I favor it. However, note that no matter >> what is done here (ie at the API level in avfilter/formats), it will >> not fix all possible error paths in the filters as far as I can tell. >> The reason roughly boils down to the calls being able to free their >> own stuff on failure, but they are not able to free other things, e.g >> samplerates functions can't free channel layouts. >> >> Or put in other words, if one wants to be absolutely correct, a ton of >> filters will need updating unfortunately. > > Have example of leak this one doesn't solve?
It will be more difficult to construct (one line patch not possible), and I would rather not put in the effort for it right now. Like I said, independent of whether this completely solves the issue or not, it is a step in the right direction and is good with me. > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel