libavfilter/af_channelmap: avoid derreferencing possible null

ff_all_channel_layouts() might return null on alloc failure.

Fixes CID1241517

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
pull/86/head
Reynaldo H. Verdejo Pinochet 10 years ago
parent e3e051c42c
commit 32288234a2
  1. 8
      libavfilter/af_channelmap.c

@ -287,10 +287,16 @@ static av_cold int channelmap_init(AVFilterContext *ctx)
static int channelmap_query_formats(AVFilterContext *ctx) static int channelmap_query_formats(AVFilterContext *ctx)
{ {
ChannelMapContext *s = ctx->priv; ChannelMapContext *s = ctx->priv;
AVFilterChannelLayouts *layouts;
ff_set_common_formats(ctx, ff_planar_sample_fmts()); ff_set_common_formats(ctx, ff_planar_sample_fmts());
ff_set_common_samplerates(ctx, ff_all_samplerates()); ff_set_common_samplerates(ctx, ff_all_samplerates());
ff_channel_layouts_ref(ff_all_channel_layouts(), &ctx->inputs[0]->out_channel_layouts);
layouts = ff_all_channel_layouts();
if (!layouts)
return AVERROR(ENOMEM);
ff_channel_layouts_ref(layouts, &ctx->inputs[0]->out_channel_layouts);
ff_channel_layouts_ref(s->channel_layouts, &ctx->outputs[0]->in_channel_layouts); ff_channel_layouts_ref(s->channel_layouts, &ctx->outputs[0]->in_channel_layouts);
return 0; return 0;

Loading…
Cancel
Save