From 693f1c6a2336357ec14cd3b56a49905bd88bed6c Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Fri, 9 Feb 2007 00:20:28 +0000 Subject: [PATCH] STABLE14-getcbi-limit-addresses-20070208 FIXES 36643 don't write addresses (if we have too many) over random memory (cherry picked from commit 8ecad072df8f6cfa63e1ef4d862611a0f2a75e7b) --- src/rx/rx_kcommon.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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); -- 2.39.5