summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-11-10 21:44:20 +0100
committerMichael Niedermayer <michaelni@gmx.at>2012-11-10 21:45:34 +0100
commit47ca2487ae88358a324f620cfb50095d086ed8f5 (patch)
treed9dcc200ceab51348c1a227f7788fba10d9032b0
parenta150bad4062a29fc11b32117bc1ade38115cd95b (diff)
lavfi/avcodec: check that injected avframes use a supported channel layout
This fixes out of array accesses. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavfilter/avcodec.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libavfilter/avcodec.c b/libavfilter/avcodec.c
index feaf641ccb..c9c8f3c1c1 100644
--- a/libavfilter/avcodec.c
+++ b/libavfilter/avcodec.c
@@ -60,6 +60,10 @@ int avfilter_copy_frame_props(AVFilterBufferRef *dst, const AVFrame *src)
case AVMEDIA_TYPE_AUDIO:
dst->audio->sample_rate = src->sample_rate;
dst->audio->channel_layout = src->channel_layout;
+ if(src->channels != av_get_channel_layout_nb_channels(src->channel_layout)) {
+ av_log(0, AV_LOG_ERROR, "libavfilter does not support this channel layout\n");
+ return AVERROR(EINVAL);
+ }
break;
default:
return AVERROR(EINVAL);