diff options
author | Max Kellermann <max@duempel.org> | 2008-11-12 08:16:54 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2008-11-12 08:16:54 +0100 |
commit | e19b53f81495704b9286b08529017815a5d6becc (patch) | |
tree | 4dc127c24fc1d6d9d35ce7b1c7a614fbaf53cd22 | |
parent | b30ec73099bc42b0ccb9202cc7ab7269e5adb2d1 (diff) | |
download | mpd-e19b53f81495704b9286b08529017815a5d6becc.tar.gz mpd-e19b53f81495704b9286b08529017815a5d6becc.tar.xz mpd-e19b53f81495704b9286b08529017815a5d6becc.zip |
aac: check the buffer length in the ADIF parser
Check whether enough data has been read yet.
Diffstat (limited to '')
-rw-r--r-- | src/decoder/aac_plugin.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/decoder/aac_plugin.c b/src/decoder/aac_plugin.c index 477efb773..63003e7c2 100644 --- a/src/decoder/aac_plugin.c +++ b/src/decoder/aac_plugin.c @@ -220,6 +220,12 @@ static void aac_parse_header(AacBuffer * b, float *length) unsigned bitRate; size_t skipSize = (b->buffer[4] & 0x80) ? 9 : 0; + + if (8 + skipSize > b->bytesIntoBuffer) + /* not enough data yet; skip parsing this + header */ + return; + bitRate = ((unsigned int)(b-> buffer[4 + |