diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-04-23 10:33:55 +0300 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2012-04-23 10:47:38 +0300 |
commit | 0ca4414d0f3eeb39bbad504eaaae76d40b7189cc (patch) | |
tree | 37c22bd562ec8a56594008391e474f816a574ba3 /libavformat | |
parent | a229d6c2856a03654942ad8cb8a77003f688fea2 (diff) | |
download | ffmpeg-0ca4414d0f3eeb39bbad504eaaae76d40b7189cc.tar.gz |
audemux: Add a sanity check for the number of channels
Fixes a division by 0.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/au.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libavformat/au.c b/libavformat/au.c index 3a83d283bb..bb9d5d5b56 100644 --- a/libavformat/au.c +++ b/libavformat/au.c @@ -145,6 +145,11 @@ static int au_read_header(AVFormatContext *s) return AVERROR_INVALIDDATA; } + if (channels == 0 || channels > 64) { + av_log(s, AV_LOG_ERROR, "Invalid number of channels %d\n", channels); + return AVERROR_INVALIDDATA; + } + if (size >= 24) { /* skip unused data */ avio_skip(pb, size - 24); |