projects
/
platform
/
upstream
/
libav.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
517ce1d
)
opusdec: make sure all substreams have the same number of coded samples
author
Anton Khirnov
<anton@khirnov.net>
Mon, 24 Nov 2014 10:16:46 +0000
(11:16 +0100)
committer
Anton Khirnov
<anton@khirnov.net>
Thu, 27 Nov 2014 13:11:51 +0000
(14:11 +0100)
Fixes invalid writes with invalid multichannel streams.
CC:libav-stable@libav.org
(cherry picked from commit
1973079417e8701b52ba810a72cb6c7c6f7f9a56
)
Signed-off-by: Anton Khirnov <anton@khirnov.net>
libavcodec/opusdec.c
patch
|
blob
|
history
diff --git
a/libavcodec/opusdec.c
b/libavcodec/opusdec.c
index
bf3a54b
..
771922e
100644
(file)
--- a/
libavcodec/opusdec.c
+++ b/
libavcodec/opusdec.c
@@
-500,6
+500,12
@@
static int opus_decode_packet(AVCodecContext *avctx, void *data,
av_log(avctx, AV_LOG_ERROR, "Error parsing the packet header.\n");
return ret;
}
+ if (coded_samples != s->packet.frame_count * s->packet.frame_duration) {
+ av_log(avctx, AV_LOG_ERROR,
+ "Mismatching coded sample count in substream %d.\n", i);
+ return AVERROR_INVALIDDATA;
+ }
+
s->silk_samplerate = get_silk_samplerate(s->packet.config);
}