summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libc/net/linkaddr.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/lib/libc/net/linkaddr.c b/src/lib/libc/net/linkaddr.c
index 354067b3b5..9101e23a86 100644
--- a/src/lib/libc/net/linkaddr.c
+++ b/src/lib/libc/net/linkaddr.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: linkaddr.c,v 1.8 2016/12/07 01:05:47 millert Exp $ */ 1/* $OpenBSD: linkaddr.c,v 1.9 2016/12/08 03:20:50 millert Exp $ */
2/*- 2/*-
3 * Copyright (c) 1990, 1993 3 * Copyright (c) 1990, 1993
4 * The Regents of the University of California. All rights reserved. 4 * The Regents of the University of California. All rights reserved.
@@ -41,7 +41,7 @@ link_ntoa(const struct sockaddr_dl *sdl)
41{ 41{
42 static char obuf[64]; 42 static char obuf[64];
43 char *out; 43 char *out;
44 const char *in, *inlim; 44 const u_char *in, *inlim;
45 int namelen, i, rem; 45 int namelen, i, rem;
46 46
47 namelen = (sdl->sdl_nlen <= IFNAMSIZ) ? sdl->sdl_nlen : IFNAMSIZ; 47 namelen = (sdl->sdl_nlen <= IFNAMSIZ) ? sdl->sdl_nlen : IFNAMSIZ;
@@ -58,11 +58,11 @@ link_ntoa(const struct sockaddr_dl *sdl)
58 } 58 }
59 } 59 }
60 60
61 in = (const char *)sdl->sdl_data + sdl->sdl_nlen; 61 in = (const u_char *)sdl->sdl_data + sdl->sdl_nlen;
62 inlim = in + sdl->sdl_alen; 62 inlim = in + sdl->sdl_alen;
63 63
64 while (in < inlim && rem > 1) { 64 while (in < inlim && rem > 1) {
65 if (in != (const char *)sdl->sdl_data + sdl->sdl_nlen) { 65 if (in != (const u_char *)sdl->sdl_data + sdl->sdl_nlen) {
66 *out++ = '.'; 66 *out++ = '.';
67 rem--; 67 rem--;
68 } 68 }
@@ -70,9 +70,8 @@ link_ntoa(const struct sockaddr_dl *sdl)
70 if (i > 0xf) { 70 if (i > 0xf) {
71 if (rem < 3) 71 if (rem < 3)
72 break; 72 break;
73 *out++ = hexlist[i >> 4];
73 *out++ = hexlist[i & 0xf]; 74 *out++ = hexlist[i & 0xf];
74 i >>= 4;
75 *out++ = hexlist[i];
76 rem -= 2; 75 rem -= 2;
77 } else { 76 } else {
78 if (rem < 2) 77 if (rem < 2)