From: Derrick Brashear Date: Fri, 9 Feb 2007 00:20:28 +0000 (+0000) Subject: STABLE14-getcbi-limit-addresses-20070208 X-Git-Tag: openafs-stable-1_4_3rc2~16 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=693f1c6a2336357ec14cd3b56a49905bd88bed6c;p=packages%2Fo%2Fopenafs.git STABLE14-getcbi-limit-addresses-20070208 FIXES 36643 don't write addresses (if we have too many) over random memory (cherry picked from commit 8ecad072df8f6cfa63e1ef4d862611a0f2a75e7b) --- diff --git a/src/rx/rx_kcommon.c b/src/rx/rx_kcommon.c index f2e4b25b8..f7572d7da 100644 --- a/src/rx/rx_kcommon.c +++ b/src/rx/rx_kcommon.c @@ -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);