From: Oliver Kurth Date: Tue, 4 Sep 2018 22:41:00 +0000 (-0700) Subject: nicinfo: skip loopback devices X-Git-Tag: stable-11.0.0~396 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5add0ab1ad77a04edb6efc130fed1ad4abfe2ca6;p=thirdparty%2Fopen-vm-tools.git nicinfo: skip loopback devices When libdnet isn't used, loopback devices were reported. This change skips these interfaces. Also skip interfaces that are down. The interface was visible with vim-cmd, but not in the VC or ESX UI. It did not contain any IP addresses. --- diff --git a/open-vm-tools/lib/nicInfo/nicInfoPosix.c b/open-vm-tools/lib/nicInfo/nicInfoPosix.c index 31c1d1ab3..f95e980f2 100644 --- a/open-vm-tools/lib/nicInfo/nicInfoPosix.c +++ b/open-vm-tools/lib/nicInfo/nicInfoPosix.c @@ -277,6 +277,13 @@ GuestInfoGetInterface(struct ifaddrs *ifaddrs, if (sll != NULL && sll->sll_family == AF_PACKET) { char macAddress[NICINFO_MAC_LEN]; + /* + * Ignore loopback and downed devices. + */ + if (!(pkt->ifa_flags & IFF_UP) || pkt->ifa_flags & IFF_LOOPBACK) { + continue; + } + Str_Sprintf(macAddress, sizeof macAddress, "%02x:%02x:%02x:%02x:%02x:%02x", sll->sll_addr[0], sll->sll_addr[1], sll->sll_addr[2], @@ -301,6 +308,8 @@ GuestInfoGetInterface(struct ifaddrs *ifaddrs, unsigned nBits = 0; /* * Ignore any loopback addresses. + * A loopback address would indicate a misconfiguration, since + * this is not a loopback device (we checked for that above). */ if (family == AF_INET) { struct sockaddr_in *sin = (struct sockaddr_in *)sa;