diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2008-12-26 17:51:10 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2008-12-26 17:51:10 +0000 |
commit | 11c5999e20c49e0f26af8bb8c60214da1f308ab3 (patch) | |
tree | cca094351a3ce2515693f9d9bfcd6cb517d5b511 /libavcodec/faxcompr.c | |
parent | 2a522579aa5753cf87a6a336150161e42c25a0aa (diff) | |
download | ffmpeg-11c5999e20c49e0f26af8bb8c60214da1f308ab3.tar.gz |
Fix another sechole.
Originally committed as revision 16344 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/faxcompr.c')
-rw-r--r-- | libavcodec/faxcompr.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/libavcodec/faxcompr.c b/libavcodec/faxcompr.c index 052ed25f43..54428e7d8c 100644 --- a/libavcodec/faxcompr.c +++ b/libavcodec/faxcompr.c @@ -123,9 +123,10 @@ av_cold void ff_ccitt_unpack_init() static int decode_group3_1d_line(AVCodecContext *avctx, GetBitContext *gb, - int pix_left, int *runs, const int *runend) + unsigned int pix_left, int *runs, const int *runend) { - int mode = 0, run = 0; + int mode = 0; + unsigned int run=0; unsigned int t; for(;;){ t = get_vlc2(gb, ccitt_vlc[mode].table, 9, 2); @@ -136,14 +137,13 @@ static int decode_group3_1d_line(AVCodecContext *avctx, GetBitContext *gb, av_log(avctx, AV_LOG_ERROR, "Run overrun\n"); return -1; } - pix_left -= run; - if(pix_left <= 0){ - if(!pix_left) + if(pix_left <= run){ + if(pix_left == run) break; - runs[-1] += pix_left; av_log(avctx, AV_LOG_ERROR, "Run went out of bounds\n"); return -1; } + pix_left -= run; run = 0; mode = !mode; }else if((int)t == -1){ |