From e1cc03f597954d6e70086dbccf989f791b123c66 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Fri, 19 Mar 2004 05:16:24 +0000 Subject: [PATCH] getipaddrlist-20040318 Improve error checking in GetNumOfIpAddrs to prevent potential invalid memory access if the IP Address Table cannot be accessed. (win2000 with no privs) --- src/WINNT/client_creds/afskfw.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/WINNT/client_creds/afskfw.c b/src/WINNT/client_creds/afskfw.c index 1a00fe889d..bedb85ff32 100644 --- a/src/WINNT/client_creds/afskfw.c +++ b/src/WINNT/client_creds/afskfw.c @@ -3449,9 +3449,11 @@ GetNumOfIpAddrs(void) if (code == ERROR_INSUFFICIENT_BUFFER) { pIpAddrTable = malloc(dwSize); code = GetIpAddrTable(pIpAddrTable, &dwSize, 0); - for ( index=0; index < pIpAddrTable->dwNumEntries; index++ ) { - if (pIpAddrTable->table[index].dwAddr != 0) - validAddrs++; + if ( code == NO_ERROR ) { + for ( index=0; index < pIpAddrTable->dwNumEntries; index++ ) { + if (pIpAddrTable->table[index].dwAddr != 0) + validAddrs++; + } } free(pIpAddrTable); }