summaryrefslogtreecommitdiffstats
path: root/sys/net/if.c
diff options
context:
space:
mode:
authoryar <yar@FreeBSD.org>2006-06-29 19:22:05 +0000
committeryar <yar@FreeBSD.org>2006-06-29 19:22:05 +0000
commitba19b1ecd4d6f2950416c0596e5007ae8ffb5360 (patch)
tree3d6a9cdea9fbb33471c0beed7b40c5ae89e5a37c /sys/net/if.c
parentfb752eb168e0c0461ca9c98b0c8452c4d96ec4a7 (diff)
downloadFreeBSD-src-ba19b1ecd4d6f2950416c0596e5007ae8ffb5360.zip
FreeBSD-src-ba19b1ecd4d6f2950416c0596e5007ae8ffb5360.tar.gz
There is a consensus that ifaddr.ifa_addr should never be NULL,
except in places dealing with ifaddr creation or destruction; and in such special places incomplete ifaddrs should never be linked to system-wide data structures. Therefore we can eliminate all the superfluous checks for "ifa->ifa_addr != NULL" and get ready to the system crashing honestly instead of masking possible bugs. Suggested by: glebius, jhb, ru
Diffstat (limited to 'sys/net/if.c')
-rw-r--r--sys/net/if.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/sys/net/if.c b/sys/net/if.c
index f92c930..d540c95 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -581,12 +581,11 @@ if_purgeaddrs(struct ifnet *ifp)
struct ifaddr *ifa, *next;
TAILQ_FOREACH_SAFE(ifa, &ifp->if_addrhead, ifa_link, next) {
-
- if (ifa->ifa_addr && ifa->ifa_addr->sa_family == AF_LINK)
+ if (ifa->ifa_addr->sa_family == AF_LINK)
continue;
#ifdef INET
/* XXX: Ugly!! ad hoc just for INET */
- if (ifa->ifa_addr && ifa->ifa_addr->sa_family == AF_INET) {
+ if (ifa->ifa_addr->sa_family == AF_INET) {
struct ifaliasreq ifr;
bzero(&ifr, sizeof(ifr));
@@ -599,7 +598,7 @@ if_purgeaddrs(struct ifnet *ifp)
}
#endif /* INET */
#ifdef INET6
- if (ifa->ifa_addr && ifa->ifa_addr->sa_family == AF_INET6) {
+ if (ifa->ifa_addr->sa_family == AF_INET6) {
in6_purgeaddr(ifa);
/* ifp_addrhead is already updated */
continue;
@@ -2404,8 +2403,7 @@ if_setlladdr(struct ifnet *ifp, const u_char *lladdr, int len)
* the address change.
*/
TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) {
- if (ifa->ifa_addr != NULL &&
- ifa->ifa_addr->sa_family == AF_INET)
+ if (ifa->ifa_addr->sa_family == AF_INET)
arp_ifinit(ifp, ifa);
}
#endif
OpenPOWER on IntegriCloud