aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGleb Smirnoff <glebius@FreeBSD.org>2016-12-07 23:32:42 +0000
committerGleb Smirnoff <glebius@FreeBSD.org>2016-12-07 23:32:42 +0000
commit59570923bc07f0e74f90b47bd0e10dc5db508d4a (patch)
tree97d61bf89a2ff9a9dfb5caa217eaeef23c181431
parent69f6fd216112cfb7c6a0c41120f584fa55f69043 (diff)
downloadsrc-59570923bc07f0e74f90b47bd0e10dc5db508d4a.tar.gz
src-59570923bc07f0e74f90b47bd0e10dc5db508d4a.zip
Merge r309688: address regressions in SA-16:37.libc.
PR: 215105 Submitted by: <jtd2004a sbcglobal.net> Approved by: so
Notes
Notes: svn path=/releng/10.2/; revision=309694
-rw-r--r--UPDATING4
-rw-r--r--lib/libc/net/linkaddr.c11
-rw-r--r--sys/conf/newvers.sh2
3 files changed, 10 insertions, 7 deletions
diff --git a/UPDATING b/UPDATING
index bdb0e626ecee..8e4ac46cdfd5 100644
--- a/UPDATING
+++ b/UPDATING
@@ -16,6 +16,10 @@ from older versions of FreeBSD, try WITHOUT_CLANG to bootstrap to the tip of
stable/10, and then rebuild without this option. The bootstrap process from
older version of current is a bit fragile.
+20161208 p27 FreeBSD-SA-16:37.libc [revised]
+
+ Fix regressions introduced by SA-16:37.libc.
+
20161206 p26 FreeBSD-SA-16:36.telnetd
FreeBSD-SA-16:37.libc
FreeBSD-SA-16:38.bhyve
diff --git a/lib/libc/net/linkaddr.c b/lib/libc/net/linkaddr.c
index f14f22de279f..fec220a389a9 100644
--- a/lib/libc/net/linkaddr.c
+++ b/lib/libc/net/linkaddr.c
@@ -128,7 +128,7 @@ link_ntoa(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;
@@ -145,11 +145,11 @@ link_ntoa(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--;
}
@@ -157,15 +157,14 @@ link_ntoa(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;
diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh
index 5eaae430fc23..74aeb1e080ad 100644
--- a/sys/conf/newvers.sh
+++ b/sys/conf/newvers.sh
@@ -32,7 +32,7 @@
TYPE="FreeBSD"
REVISION="10.2"
-BRANCH="RELEASE-p26"
+BRANCH="RELEASE-p27"
if [ "X${BRANCH_OVERRIDE}" != "X" ]; then
BRANCH=${BRANCH_OVERRIDE}
fi