]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
STABLE14-getcbi-limit-addresses-20070208
authorDerrick Brashear <shadow@dementia.org>
Fri, 9 Feb 2007 00:20:28 +0000 (00:20 +0000)
committerDerrick Brashear <shadow@dementia.org>
Fri, 9 Feb 2007 00:20:28 +0000 (00:20 +0000)
FIXES 36643

don't write addresses (if we have too many) over random memory

(cherry picked from commit 8ecad072df8f6cfa63e1ef4d862611a0f2a75e7b)

src/rx/rx_kcommon.c

index f2e4b25b88c6b43e760dd9ab83e65fa0fb8da203..f7572d7da1d16b96cb1d8af9a58fc3a484d638e9 100644 (file)
@@ -524,7 +524,7 @@ shutdown_rxkernel(void)
 int
 rxi_GetcbiInfo(void)
 {
-    int i, j, different = 0;
+    int i, j, different = 0, num = ADDRSPERSITE;
     int rxmtu, maxmtu;
     afs_uint32 ifinaddr;
     afs_uint32 addrs[ADDRSPERSITE];
@@ -533,7 +533,9 @@ rxi_GetcbiInfo(void)
     memset((void *)addrs, 0, sizeof(addrs));
     memset((void *)mtus, 0, sizeof(mtus));
 
-    for (i = 0; i < afs_cb_interface.numberOfInterfaces; i++) {
+    if (afs_cb_interface.numberOfInterfaces < num)
+       num = afs_cb_interface.numberOfInterfaces;
+    for (i = 0; i < num; i++) {
        if (!afs_cb_interface.mtu[i])
            afs_cb_interface.mtu[i] = htonl(1500);
        rxmtu = (ntohl(afs_cb_interface.mtu[i]) - RX_IPUDP_SIZE);