Author: eadler
Date: Tue May 21 19:56:03 2013
New Revision: 250882
URL: http://svnweb.freebsd.org/changeset/base/250882

Log:
  Avoid signed overflow in error handling code.
  
  Reviewed by:  cperciva, bjk

Modified:
  head/usr.bin/split/split.c

Modified: head/usr.bin/split/split.c
==============================================================================
--- head/usr.bin/split/split.c  Tue May 21 19:32:35 2013        (r250881)
+++ head/usr.bin/split/split.c  Tue May 21 19:56:03 2013        (r250882)
@@ -379,8 +379,10 @@ newfile(void)
 
        /* maxfiles = pattlen^sufflen, but don't use libm. */
        for (maxfiles = 1, i = 0; i < sufflen; i++)
-               if ((maxfiles *= pattlen) <= 0)
+               if (LONG_MAX / pattlen < maxfiles)
                        errx(EX_USAGE, "suffix is too long (max %ld)", i);
+               else
+                       maxfiles *= pattlen;
 
        if (fnum == maxfiles)
                errx(EX_DATAERR, "too many files");
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to