Address regressions in SA-16:37.libc.

PR:		215105
Submitted by:	<jtd2004a sbcglobal.net>
This commit is contained in:
Gleb Smirnoff 2016-12-07 23:18:00 +00:00
parent 109005cc14
commit faf19a69a6

View File

@ -125,7 +125,7 @@ link_ntoa(const struct sockaddr_dl *sdl)
static char obuf[64];
_Static_assert(sizeof(obuf) >= IFNAMSIZ + 20, "obuf is too small");
char *out;
const char *in, *inlim;
const u_char *in, *inlim;
int namelen, i, rem;
namelen = (sdl->sdl_nlen <= IFNAMSIZ) ? sdl->sdl_nlen : IFNAMSIZ;
@ -142,11 +142,11 @@ link_ntoa(const struct sockaddr_dl *sdl)
}
}
in = (const char *)sdl->sdl_data + sdl->sdl_nlen;
in = (const u_char *)sdl->sdl_data + sdl->sdl_nlen;
inlim = in + sdl->sdl_alen;
while (in < inlim && rem > 1) {
if (in != (const char *)sdl->sdl_data + sdl->sdl_nlen) {
if (in != (const u_char *)sdl->sdl_data + sdl->sdl_nlen) {
*out++ = '.';
rem--;
}
@ -154,15 +154,14 @@ link_ntoa(const struct sockaddr_dl *sdl)
if (i > 0xf) {
if (rem < 3)
break;
*out++ = hexlist[i >> 4];
*out++ = hexlist[i & 0xf];
i >>= 4;
*out++ = hexlist[i];
rem -= 2;
} else {
if (rem < 2)
break;
*out++ = hexlist[i];
rem++;
rem--;
}
}
*out = 0;