fstrace: Don't read uninitialised data on other platforms either
authorStephan Wiesand <stephan.wiesand@desy.de>
Mon, 2 Jun 2014 14:15:15 +0000 (16:15 +0200)
committerD Brashear <shadow@your-file-system.com>
Tue, 3 Jun 2014 21:13:41 +0000 (17:13 -0400)
Commit 908105fe8d51551e45692de4e145022138a0356c fixed an off-by-one
error potentially causing a buffer overread in CheckTypes, but only
in the IRIX/AIX version of the function. Apply the same fix to the
code for the other platforms.

Spotted by Andrew Deason.

Change-Id: I5f70c072e609337b39064ba48353b4fdf23acf17
Reviewed-on: http://gerrit.openafs.org/11185
Reviewed-by: D Brashear <shadow@your-file-system.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

src/venus/fstrace.c

index 4b8207f..47f6269 100644 (file)
@@ -223,7 +223,7 @@ CheckTypes(char *bufferp, int *typesp, int typeCount)
             * check the type descriptor.
             */
            inPercent = 0;
-           if (tix > typeCount)
+           if (tix >= typeCount)
                return 0;       /* no more type descriptors left */
            if (tc == 's' && typesp[tix] != 1)  /* not a string descriptor */
                return 0;