Always check the limits of array index variables before using them.
authorSascha Wildner <saw@online.de>
Thu, 26 Jun 2014 17:24:43 +0000 (19:24 +0200)
committerSascha Wildner <saw@online.de>
Thu, 26 Jun 2014 17:24:56 +0000 (19:24 +0200)
bin/ed/cbc.c
games/larn/display.c
games/pig/pig.c
libexec/rtld-elf/libmap.c
sbin/mount_devfs/mount_devfs.c
usr.bin/mail/edit.c

index cebf225..00d0a1e 100644 (file)
@@ -239,7 +239,7 @@ expand_des_key(char *obuf, char *kbuf)
                /*
                 * now translate it, bombing on any illegal hex digit
                 */
-               for (i = 0; kbuf[i] && i < 16; i++)
+               for (i = 0; i < 16 && kbuf[i]; i++)
                        if ((nbuf[i] = hex_to_binary((int) kbuf[i], 16)) == -1)
                                des_error("bad hex digit in key");
                while (i < 16)
@@ -259,7 +259,7 @@ expand_des_key(char *obuf, char *kbuf)
                /*
                 * now translate it, bombing on any illegal binary digit
                 */
-               for (i = 0; kbuf[i] && i < 16; i++)
+               for (i = 0; i < 16 && kbuf[i]; i++)
                        if ((nbuf[i] = hex_to_binary((int) kbuf[i], 2)) == -1)
                                des_error("bad binary digit in key");
                while (i < 64)
index fa157ef..1e9b901 100644 (file)
@@ -1,6 +1,5 @@
 /*     display.c               Larn is copyrighted 1986 by Noah Morgan. */
 /* $FreeBSD: src/games/larn/display.c,v 1.4 1999/11/16 02:57:21 billf Exp $ */
-/* $DragonFly: src/games/larn/display.c,v 1.3 2006/08/26 17:05:05 pavalos Exp $ */
 #include "header.h"
 #define makecode(_a,_b,_c) (((_a)<<16) + ((_b)<<8) + (_c))
 
@@ -301,7 +300,7 @@ drawscreen(void)
 
        for (i = d_ymin; i < d_ymax; i++) {
                j = d_xmin;
-               while ((screen[j][i] == ' ') && (j < d_xmax))
+               while ((j < d_xmax) && (screen[j][i] == ' '))
                        j++;
                /* was m=0 */
                if (j >= d_xmax)        /* don't search backwards if blank line */
@@ -321,7 +320,7 @@ drawscreen(void)
                                        if (screen[l][i] != ' ')
                                                l = 1000;
                                if (l < 1000) {
-                                       while (screen[j][i] == ' ' && j <= m)
+                                       while (j <= m && screen[j][i] == ' ')
                                                j++;
                                        cursor(j + 1, i + 1);
                                }
index 83cf183..e4e720e 100644 (file)
@@ -29,7 +29,6 @@
  * @(#) Copyright (c) 1992, 1993 The Regents of the University of California.  All rights reserved.
  * @(#)pig.c   8.2 (Berkeley) 5/4/95
  * $FreeBSD: src/games/pig/pig.c,v 1.7 1999/11/30 03:49:08 billf Exp $
- * $DragonFly: src/games/pig/pig.c,v 1.4 2005/04/25 16:10:24 liamfoy Exp $
  */
 
 #include <sys/types.h>
@@ -97,7 +96,7 @@ pigout(char *buf, int len)
         * isn't treated as a vowel.
         */
        for (start = 0, olen = len;
-           !index("aeiouyAEIOUY", buf[start]) && start < olen;) {
+           start < olen && !index("aeiouyAEIOUY", buf[start]);) {
                ch = buf[len++] = buf[start++];
                if ((ch == 'q' || ch == 'Q') && start < olen &&
                    (buf[start] == 'u' || buf[start] == 'U'))
index dcc896e..8124a29 100644 (file)
@@ -211,14 +211,14 @@ lmc_parse(char *lm_p, size_t lm_len)
        p = NULL;
        while (cnt < lm_len) {
                i = 0;
-               while (lm_p[cnt] != '\n' && cnt < lm_len &&
+               while (cnt < lm_len && lm_p[cnt] != '\n' &&
                    i < sizeof(line) - 1) {
                        line[i] = lm_p[cnt];
                        cnt++;
                        i++;
                }
                line[i] = '\0';
-               while (lm_p[cnt] != '\n' && cnt < lm_len)
+               while (cnt < lm_len && lm_p[cnt] != '\n')
                        cnt++;
                /* skip over nl */
                cnt++;
index 71da219..ba59bc1 100644 (file)
@@ -88,7 +88,7 @@ main(int argc, char **argv)
                        if (ptr) {
                                ptr += 8;
                                for (i = 0, k = 0;
-                                   (ptr[i] != '\0') && (ptr[i] != ',') && (i < MAXPATHLEN);
+                                   (i < MAXPATHLEN) && (ptr[i] != '\0') && (ptr[i] != ',');
                                    i++) {
                                        rule_file[k++] = ptr[i];
 
index eaf7435..aafdba6 100644 (file)
@@ -28,7 +28,6 @@
  *
  * @(#)edit.c  8.1 (Berkeley) 6/6/93
  * $FreeBSD: src/usr.bin/mail/edit.c,v 1.2.6.4 2003/01/06 05:46:03 mikeh Exp $
- * $DragonFly: src/usr.bin/mail/edit.c,v 1.4 2004/09/08 03:01:11 joerg Exp $
  */
 
 #include "rcv.h"
@@ -75,7 +74,7 @@ edit1(int *msgvec, int type)
        /*
         * Deal with each message to be edited . . .
         */
-       for (i = 0; msgvec[i] && i < msgCount; i++) {
+       for (i = 0; i < msgCount && msgvec[i]; i++) {
                sig_t sigint;
 
                if (i > 0) {