diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-01-30 16:33:45 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-03-20 19:46:52 +0100 |
commit | 10d59d29bc931ae9849611fdb17af8b12a692eab (patch) | |
tree | 5aab628eca407117d6eb302a218b15f24b9f7a5d | |
parent | 7fc39f51cd00b4e8fafe09db919bf718cd904262 (diff) | |
download | ffmpeg-10d59d29bc931ae9849611fdb17af8b12a692eab.tar.gz |
msrledec: move output pointer test up
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c2992b705381e082e33633e62e151887da67b285)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/msrledec.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libavcodec/msrledec.c b/libavcodec/msrledec.c index 36a46b5978..6596cecf4c 100644 --- a/libavcodec/msrledec.c +++ b/libavcodec/msrledec.c @@ -203,6 +203,9 @@ static int msrle_decode_8_16_24_32(AVCodecContext *avctx, AVPicture *pic, pos += p2; } else { //run of pixels uint8_t pix[3]; //original pixel + if ((pic->linesize[0] > 0 && output + p1 * (depth >> 3) > output_end) || + (pic->linesize[0] < 0 && output + p1 * (depth >> 3) < output_end)) + continue; switch(depth){ case 8: pix[0] = bytestream2_get_byte(gb); break; @@ -215,9 +218,6 @@ static int msrle_decode_8_16_24_32(AVCodecContext *avctx, AVPicture *pic, case 32: pix32 = bytestream2_get_le32(gb); break; } - if ((pic->linesize[0] > 0 && output + p1 * (depth >> 3) > output_end) || - (pic->linesize[0] < 0 && output + p1 * (depth >> 3) < output_end)) - continue; for(i = 0; i < p1; i++) { switch(depth){ case 8: *output++ = pix[0]; |