From: Roy Marples Date: Wed, 15 Oct 2008 13:00:33 +0000 (+0000) Subject: Cast to void * to avoid compiler warnings on Sparc64. Also, save a needless malloc. X-Git-Tag: v5.0.0~220 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=674616cd8372909ff6df63167e669046d3a044a0;p=thirdparty%2Fdhcpcd.git Cast to void * to avoid compiler warnings on Sparc64. Also, save a needless malloc. --- diff --git a/if-bsd.c b/if-bsd.c index 1ebf2cc0..6f640758 100644 --- a/if-bsd.c +++ b/if-bsd.c @@ -281,7 +281,7 @@ manage_link(int fd, void (*if_add)(const char *), void (*if_remove)(const char *)) { - char buffer[2048], *p; + char buffer[2048], *p, *e; char ifname[IF_NAMESIZE]; ssize_t bytes; struct rt_msghdr *rtm; @@ -297,14 +297,12 @@ manage_link(int fd, continue; return -1; } - for (p = buffer; bytes > 0; - bytes -= ((struct rt_msghdr *)p)->rtm_msglen, - p += ((struct rt_msghdr *)p)->rtm_msglen) - { - rtm = (struct rt_msghdr *)p; + e = buffer + bytes; + for (p = buffer; p < e; p += rtm->rtm_msglen) { + rtm = (struct rt_msghdr *)(void *)p; switch(rtm->rtm_type) { case RTM_IFANNOUNCE: - ifa = (struct if_announcemsghdr *)p; + ifa = (struct if_announcemsghdr *)(void *)p; switch(ifa->ifan_what) { case IFAN_ARRIVAL: if_add(ifa->ifan_name); @@ -315,7 +313,7 @@ manage_link(int fd, } break; case RTM_IFINFO: - ifm = (struct if_msghdr *)p; + ifm = (struct if_msghdr *)(void *)p; memset(ifname, 0, sizeof(ifname)); if (if_indextoname(ifm->ifm_index, ifname)) if_carrier(ifname); @@ -358,8 +356,7 @@ discover_link(struct interface **ifs, int argc, char * const *argv, } if (!(ifp = init_interface(ifr->ifr_name))) return; - sdl = xmalloc(ifr->ifr_addr.sa_len); - memcpy(sdl, &ifr->ifr_addr, ifr->ifr_addr.sa_len); + sdl = (struct sockaddr_dl *)&ifr->ifr_addr; switch(sdl->sdl_type) { case IFT_ETHER: ifp->family = ARPHRD_ETHER; @@ -377,7 +374,6 @@ discover_link(struct interface **ifs, int argc, char * const *argv, ifp = NULL; break; } - free(sdl); if (ifl) ifl->next = ifp; else