--- src/sbin/ifconfig/ifconfig.c 2006/05/05 14:53:41 1.27 +++ src/sbin/ifconfig/ifconfig.c 2007/01/01 01:55:58 1.27.2.1 @@ -288,6 +288,7 @@ retry: next = buf; while (next < lim) { + int name_len; ifm = (struct if_msghdr *)next; @@ -327,11 +328,14 @@ retry: addrcount++; next += nextifm->ifm_msglen; } - memcpy(name, sdl->sdl_data, - sizeof(name) < sdl->sdl_nlen ? - sizeof(name)-1 : sdl->sdl_nlen); - name[sizeof(name) < sdl->sdl_nlen ? - sizeof(name)-1 : sdl->sdl_nlen] = '\0'; + + if (sizeof(name) <= sdl->sdl_nlen) + name_len = sizeof(name) - 1; + else + name_len = sdl->sdl_nlen; + + memcpy(name, sdl->sdl_data, name_len); + name[name_len] = '\0'; if (all || namesonly) { if (uponly)