]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
DEVEL15-getcbi-limit-addresses-20070208
authorDerrick Brashear <shadow@dementia.org>
Fri, 9 Feb 2007 00:18:45 +0000 (00:18 +0000)
committerDerrick Brashear <shadow@dementia.org>
Fri, 9 Feb 2007 00:18:45 +0000 (00:18 +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 a63c279e6eae4533e292616395e22e24a3c8d8cc..8c6eda6dcc454d731b3be5f33d3b1c93c3e71e16 100644 (file)
@@ -520,7 +520,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];
@@ -529,7 +529,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);