[FFmpeg-cvslog] ac3dec: Don't consume more data than the actual input packet size

Martin Storsjö git at videolan.org
Mon Jul 15 23:51:28 CEST 2013


ffmpeg | branch: master | Martin Storsjö <martin at martin.st> | Mon Jul 15 11:28:46 2013 +0300| [8f24c12be7a3b3ea105e67bba9a867fe210a2333] | committer: Martin Storsjö

ac3dec: Don't consume more data than the actual input packet size

This was handled properly in the normal return case at the end
of the function, but not in this special case.

Returning a value larger than the input packet size can cause
problems for certain library users.

Returning the actual input buffer size unconditionally, since
it is not guaranteed that frame_size is set to a sensible
value at this point.

Cc: libav-stable at libav.org
Signed-off-by: Martin Storsjö <martin at martin.st>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8f24c12be7a3b3ea105e67bba9a867fe210a2333
---

 libavcodec/ac3dec.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/ac3dec.c b/libavcodec/ac3dec.c
index 512d54b..6a2792e 100644
--- a/libavcodec/ac3dec.c
+++ b/libavcodec/ac3dec.c
@@ -1308,7 +1308,7 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data,
                 av_log(avctx, AV_LOG_ERROR, "unsupported frame type : "
                        "skipping frame\n");
                 *got_frame_ptr = 0;
-                return s->frame_size;
+                return buf_size;
             } else {
                 av_log(avctx, AV_LOG_ERROR, "invalid frame type\n");
             }



More information about the ffmpeg-cvslog mailing list