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;

Reply via email to