diff options
author | brooks <brooks@FreeBSD.org> | 2004-01-27 19:35:05 +0000 |
---|---|---|
committer | brooks <brooks@FreeBSD.org> | 2004-01-27 19:35:05 +0000 |
commit | e019e13d7c49dbbb95be7ebaad7cccd2404866ad (patch) | |
tree | 888e5ae2e8affd61aa04910b9a37203050f7d05f /sys/net | |
parent | cf221c4c0debfbfae33f1a844e8ce3606da4305d (diff) | |
download | FreeBSD-src-e019e13d7c49dbbb95be7ebaad7cccd2404866ad.zip FreeBSD-src-e019e13d7c49dbbb95be7ebaad7cccd2404866ad.tar.gz |
Cleanup malloc() use in if_attach():
- malloc() returns a void* and does not need a cast
- when called with M_WAITOK, malloc() can not return NULL so don't
check for that case. The result of the check was bogus anyway since
it would leave the interface broken.
Diffstat (limited to 'sys/net')
-rw-r--r-- | sys/net/if.c | 42 |
1 files changed, 20 insertions, 22 deletions
diff --git a/sys/net/if.c b/sys/net/if.c index c0a3e04..c31e46a 100644 --- a/sys/net/if.c +++ b/sys/net/if.c @@ -418,28 +418,26 @@ if_attach(struct ifnet *ifp) socksize = ROUNDUP(socksize); #undef ROUNDUP ifasize = sizeof(*ifa) + 2 * socksize; - ifa = (struct ifaddr *)malloc(ifasize, M_IFADDR, M_WAITOK | M_ZERO); - if (ifa) { - IFA_LOCK_INIT(ifa); - sdl = (struct sockaddr_dl *)(ifa + 1); - sdl->sdl_len = socksize; - sdl->sdl_family = AF_LINK; - bcopy(ifp->if_xname, sdl->sdl_data, namelen); - sdl->sdl_nlen = namelen; - sdl->sdl_index = ifp->if_index; - sdl->sdl_type = ifp->if_type; - ifaddr_byindex(ifp->if_index) = ifa; - ifa->ifa_ifp = ifp; - ifa->ifa_rtrequest = link_rtrequest; - ifa->ifa_addr = (struct sockaddr *)sdl; - sdl = (struct sockaddr_dl *)(socksize + (caddr_t)sdl); - ifa->ifa_netmask = (struct sockaddr *)sdl; - sdl->sdl_len = masklen; - while (namelen != 0) - sdl->sdl_data[--namelen] = 0xff; - ifa->ifa_refcnt = 1; - TAILQ_INSERT_HEAD(&ifp->if_addrhead, ifa, ifa_link); - } + ifa = malloc(ifasize, M_IFADDR, M_WAITOK | M_ZERO); + IFA_LOCK_INIT(ifa); + sdl = (struct sockaddr_dl *)(ifa + 1); + sdl->sdl_len = socksize; + sdl->sdl_family = AF_LINK; + bcopy(ifp->if_xname, sdl->sdl_data, namelen); + sdl->sdl_nlen = namelen; + sdl->sdl_index = ifp->if_index; + sdl->sdl_type = ifp->if_type; + ifaddr_byindex(ifp->if_index) = ifa; + ifa->ifa_ifp = ifp; + ifa->ifa_rtrequest = link_rtrequest; + ifa->ifa_addr = (struct sockaddr *)sdl; + sdl = (struct sockaddr_dl *)(socksize + (caddr_t)sdl); + ifa->ifa_netmask = (struct sockaddr *)sdl; + sdl->sdl_len = masklen; + while (namelen != 0) + sdl->sdl_data[--namelen] = 0xff; + ifa->ifa_refcnt = 1; + TAILQ_INSERT_HEAD(&ifp->if_addrhead, ifa, ifa_link); ifp->if_broadcastaddr = 0; /* reliably crash if used uninitialized */ if (domains) |