Module: libav Branch: master Commit: 2b53e696c864c4ade3c38707f8595e17a998bedc
Author: Janne Grunau <janne-li...@jannau.net> Committer: Janne Grunau <janne-li...@jannau.net> Date: Sat Dec 10 12:55:08 2011 +0100 ptx: emit a warning on insufficient picture data Return the whole packet as consumed in this case and not the size the packet should have had. Move the insufficient data check into the for condition to fix a ISO C90 error on bigendian. --- libavcodec/ptx.c | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff --git a/libavcodec/ptx.c b/libavcodec/ptx.c index eee0d58..75b42d5 100644 --- a/libavcodec/ptx.c +++ b/libavcodec/ptx.c @@ -84,9 +84,7 @@ static int ptx_decode_frame(AVCodecContext *avctx, void *data, int *data_size, ptr = p->data[0]; stride = p->linesize[0]; - for (y=0; y<h; y++) { - if (buf_end - buf < w * bytes_per_pixel) - break; + for (y = 0; y < h && buf_end - buf < w * bytes_per_pixel; y++) { #if HAVE_BIGENDIAN unsigned int x; for (x=0; x<w*bytes_per_pixel; x+=bytes_per_pixel) @@ -101,6 +99,11 @@ static int ptx_decode_frame(AVCodecContext *avctx, void *data, int *data_size, *picture = s->picture; *data_size = sizeof(AVPicture); + if (y < h) { + av_log(avctx, AV_LOG_WARNING, "incomplete packet\n"); + return avpkt->size; + } + return offset + w*h*bytes_per_pixel; } _______________________________________________ libav-commits mailing list libav-commits@libav.org https://lists.libav.org/mailman/listinfo/libav-commits