diff options
author | Justin Ruggles <justin.ruggles@gmail.com> | 2011-10-25 12:45:39 -0400 |
---|---|---|
committer | Justin Ruggles <justin.ruggles@gmail.com> | 2011-10-27 22:06:32 -0400 |
commit | 99975966c319f8995f20c8db56a5cf77cfeb69ee (patch) | |
tree | cc291bbbb23ea6cee0c8d1e36638031cb842cbad /libavcodec/mpegaudiodec.c | |
parent | e2e6c8799b3c4a61b8be36c84c5e5e15c49a31cd (diff) | |
download | ffmpeg-99975966c319f8995f20c8db56a5cf77cfeb69ee.tar.gz |
mp3adu: return error instead of just consuming bad packets
Diffstat (limited to 'libavcodec/mpegaudiodec.c')
-rw-r--r-- | libavcodec/mpegaudiodec.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/libavcodec/mpegaudiodec.c b/libavcodec/mpegaudiodec.c index 58e2bf7c38..2751df6213 100644 --- a/libavcodec/mpegaudiodec.c +++ b/libavcodec/mpegaudiodec.c @@ -1847,8 +1847,8 @@ static int decode_frame_adu(AVCodecContext *avctx, void *data, int *data_size, // Discard too short frames if (buf_size < HEADER_SIZE) { - *data_size = 0; - return buf_size; + av_log(avctx, AV_LOG_ERROR, "Packet is too small\n"); + return AVERROR_INVALIDDATA; } @@ -1859,8 +1859,8 @@ static int decode_frame_adu(AVCodecContext *avctx, void *data, int *data_size, header = AV_RB32(buf) | 0xffe00000; if (ff_mpa_check_header(header) < 0) { // Bad header, discard frame - *data_size = 0; - return buf_size; + av_log(avctx, AV_LOG_ERROR, "Invalid frame header\n"); + return AVERROR_INVALIDDATA; } avpriv_mpegaudio_decode_header((MPADecodeHeader *)s, header); |