]> git.cameronkatri.com Git - bsd-progress.git/commitdiff
Coverity CID 1447: Avoid buffer overflow.
authorchristos <christos@NetBSD.org>
Mon, 1 May 2006 23:02:03 +0000 (23:02 +0000)
committerchristos <christos@NetBSD.org>
Mon, 1 May 2006 23:02:03 +0000 (23:02 +0000)
progressbar.c

index 4ee520b1e126a75902742b1741288f6238bf18c2..0e779d0d84e954833534075377d567120a75f3c6 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: progressbar.c,v 1.12 2006/05/01 23:00:33 christos Exp $        */
+/*     $NetBSD: progressbar.c,v 1.13 2006/05/01 23:02:03 christos Exp $        */
 
 /*-
  * Copyright (c) 1997-2005 The NetBSD Foundation, Inc.
 
 /*-
  * Copyright (c) 1997-2005 The NetBSD Foundation, Inc.
@@ -38,7 +38,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: progressbar.c,v 1.12 2006/05/01 23:00:33 christos Exp $");
+__RCSID("$NetBSD: progressbar.c,v 1.13 2006/05/01 23:02:03 christos Exp $");
 #endif /* not lint */
 
 /*
 #endif /* not lint */
 
 /*
@@ -336,6 +336,8 @@ ptransfer(int siginfo)
 
        for (i = 1; bytespersec >= 1024000 && i < sizeof(prefixes); i++)
                bytespersec >>= 10;
 
        for (i = 1; bytespersec >= 1024000 && i < sizeof(prefixes); i++)
                bytespersec >>= 10;
+       if (i == sizeof(prefixes))
+               i--;
        len += snprintf(buf + len, BUFLEFT, "(" LLF ".%02d %cB/s)",
            (LLT)(bytespersec / 1024),
            (int)((bytespersec % 1024) * 100 / 1024),
        len += snprintf(buf + len, BUFLEFT, "(" LLF ".%02d %cB/s)",
            (LLT)(bytespersec / 1024),
            (int)((bytespersec % 1024) * 100 / 1024),