projects
/
libav.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
96fda42
)
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:06:03 +0000
(14:06 +0100)
Fixes invalid writes with invalid multichannel streams.
CC:libav-stable@libav.org
libavcodec/opusdec.c
patch
|
blob
|
blame
|
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);
}