]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
ubik/udebug.c: check array index before dereferencing
authorNickolai Zeldovich <nickolai@csail.mit.edu>
Sun, 6 Jan 2013 04:44:55 +0000 (23:44 -0500)
committerStephan Wiesand <stephan.wiesand@desy.de>
Fri, 22 Mar 2013 16:03:12 +0000 (09:03 -0700)
Avoid out-of-bounds array accesses by first checking that the index
is in-bounds, and then dereferencing; not the other way around.

Reviewed-on: http://gerrit.openafs.org/8879
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit 0e83cde60e6e91fbe20ffac0f0a77afe8497d950)

Change-Id: I7a5018011939d43b702c63a272d53a2018df7d33
Reviewed-on: http://gerrit.openafs.org/9513
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
src/ubik/udebug.c

index 83a395f275cbd25703e9adb827ed676262d6ecc2..0bb74285005cf86d1ad361de736acfaf5e1be8e0 100644 (file)
@@ -163,7 +163,7 @@ CommandProc(struct cmd_syndesc *as, void *arock)
     times[24] = 0;
     if (!oldServer) {
        printf("Host's addresses are: ");
-       for (j = 0; udebug.interfaceAddr[j] && (j < UBIK_MAX_INTERFACE_ADDR);
+       for (j = 0; (j < UBIK_MAX_INTERFACE_ADDR) && udebug.interfaceAddr[j];
             j++)
            printf("%s ", afs_inet_ntoa_r(htonl(udebug.interfaceAddr[j]), hoststr));
        printf("\n");
@@ -296,7 +296,7 @@ CommandProc(struct cmd_syndesc *as, void *arock)
            /* otherwise print the structure */
            printf("\nServer (%s", afs_inet_ntoa_r(htonl(usdebug.addr), hoststr));
            for (j = 0;
-                ((usdebug.altAddr[j]) && (j < UBIK_MAX_INTERFACE_ADDR - 1));
+                ((j < UBIK_MAX_INTERFACE_ADDR - 1) && (usdebug.altAddr[j]));
                 j++)
                printf(" %s", afs_inet_ntoa_r(htonl(usdebug.altAddr[j]), hoststr));
            printf("): (db %d.%d)", usdebug.remoteVersion.epoch,