# HG changeset patch # User michael # Date 1230313870 0 # Node ID 87284151c592992e35a325ed84a864dcbb190f21 # Parent 0ac984513c912cab6b3ae9a2a39e64e7d76e7db5 Fix another sechole. diff -r 0ac984513c91 -r 87284151c592 faxcompr.c --- a/faxcompr.c Fri Dec 26 17:32:11 2008 +0000 +++ b/faxcompr.c Fri Dec 26 17:51:10 2008 +0000 @@ -123,9 +123,10 @@ 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 @@ 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){