From 92168775a6349c0fe9c4f13f66af1147512f07e0 Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Thu, 15 Jun 2006 16:20:56 +0000 Subject: [PATCH] DEVEL15-getaddr-avoid-looping-20060615 so it would be good to count these all off oops (cherry picked from commit 2e691074fb6ce70e8352da3e57a746a77f7489f1) --- src/rx/rx_getaddr.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/rx/rx_getaddr.c b/src/rx/rx_getaddr.c index 37ce66c5f..61ea283a3 100644 --- a/src/rx/rx_getaddr.c +++ b/src/rx/rx_getaddr.c @@ -204,11 +204,13 @@ rx_getAllAddr_internal(afs_int32 buffer[], int maxSize, int loopbacks) if (count >= maxSize) /* no more space */ dpf(("Too many interfaces..ignoring 0x%x\n", a->sin_addr.s_addr)); - else if (!loopbacks && a->sin_addr.s_addr == htonl(0x7f000001)) + else if (!loopbacks && a->sin_addr.s_addr == htonl(0x7f000001)) { + addrcount--; continue; /* skip loopback address as well. */ - else if (loopbacks && ifm->ifm_flags & IFF_LOOPBACK) + } else if (loopbacks && ifm->ifm_flags & IFF_LOOPBACK) { + addrcount--; continue; /* skip aliased loopbacks as well. */ - else + } else buffer[count++] = a->sin_addr.s_addr; addrcount--; ifam = (struct ifa_msghdr *)((char *)ifam + ifam->ifam_msglen); -- 2.39.5