On Sun, Jul 17, 2011 at 11:32:27AM +0200, Otto Moerbeek wrote: > On Sun, Jul 17, 2011 at 11:20:28AM +0200, Alexander Schrijver wrote: > > > This fixes an integer overflow with very long lines. > > > > OK? > > Hmm, changing from a signed to an unsigned type might lead to > surprises. I think regoff_t is better.
Makes sense. This is what used by regmatch_t members anyways. When opening the file there is a check the file is not larger than SIZE_T_MAX. Does a size_t always fit into a regoff_t? new diff Index: util.c =================================================================== RCS file: /home/alex/scm/cvsync/src/usr.bin/grep/util.c,v retrieving revision 1.41 diff -u -r1.41 util.c --- util.c 11 Jul 2011 20:43:21 -0000 1.41 +++ util.c 17 Jul 2011 10:03:56 -0000 @@ -169,7 +169,7 @@ { regmatch_t pmatch; int c, i, r; - int offset; + regoff_t offset; c = 0; i = 0; @@ -444,7 +444,7 @@ #ifdef SMALL return 0; #else - int j; + regoff_t j; int rtrnVal = REG_NOMATCH; pmatch->rm_so = -1;