[FFmpeg-cvslog] avfilter/af_aresample: Check ff_all_* for allocation failures
Michael Niedermayer
git at videolan.org
Tue Jul 28 03:21:47 CEST 2015
ffmpeg | branch: release/2.5 | Michael Niedermayer <michael at niedermayer.cc> | Fri Jul 17 20:27:25 2015 +0200| [384f6801a2ed1611e01df358ffbb08c689e38670] | committer: Michael Niedermayer
avfilter/af_aresample: Check ff_all_* for allocation failures
Fixes: signal_sigabrt_7ffff70eccc9_498_divx502.avi with memlimit 1572864
Found-by: Samuel Groß, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
(cherry picked from commit 2ea8a480832acad3095783bcb11d5f290bec56cf)
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=384f6801a2ed1611e01df358ffbb08c689e38670
---
libavfilter/af_aresample.c | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
diff --git a/libavfilter/af_aresample.c b/libavfilter/af_aresample.c
index 57ac397..6cb765d 100644
--- a/libavfilter/af_aresample.c
+++ b/libavfilter/af_aresample.c
@@ -87,15 +87,24 @@ static int query_formats(AVFilterContext *ctx)
AVFilterLink *inlink = ctx->inputs[0];
AVFilterLink *outlink = ctx->outputs[0];
- AVFilterFormats *in_formats = ff_all_formats(AVMEDIA_TYPE_AUDIO);
- AVFilterFormats *out_formats;
- AVFilterFormats *in_samplerates = ff_all_samplerates();
- AVFilterFormats *out_samplerates;
- AVFilterChannelLayouts *in_layouts = ff_all_channel_counts();
- AVFilterChannelLayouts *out_layouts;
+ AVFilterFormats *in_formats, *out_formats;
+ AVFilterFormats *in_samplerates, *out_samplerates;
+ AVFilterChannelLayouts *in_layouts, *out_layouts;
+
+ in_formats = ff_all_formats(AVMEDIA_TYPE_AUDIO);
+ if (!in_formats)
+ return AVERROR(ENOMEM);
ff_formats_ref (in_formats, &inlink->out_formats);
+
+ in_samplerates = ff_all_samplerates();
+ if (!in_samplerates)
+ return AVERROR(ENOMEM);
ff_formats_ref (in_samplerates, &inlink->out_samplerates);
+
+ in_layouts = ff_all_channel_counts();
+ if (!in_layouts)
+ return AVERROR(ENOMEM);
ff_channel_layouts_ref(in_layouts, &inlink->out_channel_layouts);
if(out_rate > 0) {
More information about the ffmpeg-cvslog
mailing list