From 2d750f7dce2d8be405a3bdff97f3f3f28fcac73b Mon Sep 17 00:00:00 2001 From: Michael Meffie Date: Tue, 26 Jun 2012 15:09:07 -0400 Subject: [PATCH] vldb_check: off by one host address table error Fix several off-by-one errors when traversing the IpMappedAddr table in vldb_check. The last index (254) was not checked in several places. Reviewed-on: http://gerrit.openafs.org/7614 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit a27a8a66c2c27a62afa566679ef9cf424e758d9f) Change-Id: I5fd5b452cafe641765247bdf11ef1a1b08cc1529 Reviewed-on: http://gerrit.openafs.org/8209 Tested-by: BuildBot Reviewed-by: Derrick Brashear --- src/vlserver/vldb_check.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/vlserver/vldb_check.c b/src/vlserver/vldb_check.c index 01645ae85..566a197ff 100644 --- a/src/vlserver/vldb_check.c +++ b/src/vlserver/vldb_check.c @@ -277,7 +277,7 @@ readheader(struct vlheader *headerp) ntohl(headerp->vital_header.totalEntries[1]); headerp->SIT = ntohl(headerp->SIT); - for (i = 0; i < MAXSERVERID; i++) + for (i = 0; i <= MAXSERVERID; i++) headerp->IpMappedAddr[i] = ntohl(headerp->IpMappedAddr[i]); for (i = 0; i < HASHSIZE; i++) headerp->VolnameHash[i] = ntohl(headerp->VolnameHash[i]); @@ -341,7 +341,7 @@ writeheader(struct vlheader *headerp) htonl(headerp->vital_header.totalEntries[1]); headerp->SIT = htonl(headerp->SIT); - for (i = 0; i < MAXSERVERID; i++) + for (i = 0; i <= MAXSERVERID; i++) headerp->IpMappedAddr[i] = htonl(headerp->IpMappedAddr[i]); for (i = 0; i < HASHSIZE; i++) headerp->VolnameHash[i] = htonl(headerp->VolnameHash[i]); @@ -960,7 +960,7 @@ CheckIpAddrs(struct vlheader *header) e = (struct extentaddr *)&(MHblock[j]); /* Search the IpMappedAddr array for the reference to this entry */ - for (ipindex = 0; ipindex < MAXSERVERID; ipindex++) { + for (ipindex = 0; ipindex <= MAXSERVERID; ipindex++) { if (((header->IpMappedAddr[ipindex] & 0xff000000) == 0xff000000) && @@ -971,7 +971,7 @@ CheckIpAddrs(struct vlheader *header) break; } } - if (ipindex >= MAXSERVERID) + if (ipindex > MAXSERVERID) ipindex = -1; else serveraddrs[ipindex] = -1; -- 2.39.5