Document EN-16:19.tzcode, EN-16:20.tzdata, EN-16:21.localedef;
SA-16:36.telnetd, SA-16:37.libc, SA-16:38.bhyve;
This commit is contained in:
parent
dcae915099
commit
cf7400e34a
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=49711
30 changed files with 65620 additions and 0 deletions
75
share/security/patches/SA-16:37/libc.patch
Normal file
75
share/security/patches/SA-16:37/libc.patch
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
--- lib/libc/net/linkaddr.c.orig
|
||||
+++ lib/libc/net/linkaddr.c
|
||||
@@ -35,6 +35,7 @@
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
+#include <net/if.h>
|
||||
#include <net/if_dl.h>
|
||||
#include <string.h>
|
||||
|
||||
@@ -122,31 +123,47 @@
|
||||
link_ntoa(const struct sockaddr_dl *sdl)
|
||||
{
|
||||
static char obuf[64];
|
||||
- char *out = obuf;
|
||||
- int i;
|
||||
- u_char *in = (u_char *)LLADDR(sdl);
|
||||
- u_char *inlim = in + sdl->sdl_alen;
|
||||
- int firsttime = 1;
|
||||
+ _Static_assert(sizeof(obuf) >= IFNAMSIZ + 20, "obuf is too small");
|
||||
+ char *out;
|
||||
+ const char *in, *inlim;
|
||||
+ int namelen, i, rem;
|
||||
|
||||
- if (sdl->sdl_nlen) {
|
||||
- bcopy(sdl->sdl_data, obuf, sdl->sdl_nlen);
|
||||
- out += sdl->sdl_nlen;
|
||||
- if (sdl->sdl_alen)
|
||||
+ namelen = (sdl->sdl_nlen <= IFNAMSIZ) ? sdl->sdl_nlen : IFNAMSIZ;
|
||||
+
|
||||
+ out = obuf;
|
||||
+ rem = sizeof(obuf);
|
||||
+ if (namelen > 0) {
|
||||
+ bcopy(sdl->sdl_data, out, namelen);
|
||||
+ out += namelen;
|
||||
+ rem -= namelen;
|
||||
+ if (sdl->sdl_alen > 0) {
|
||||
*out++ = ':';
|
||||
+ rem--;
|
||||
+ }
|
||||
}
|
||||
- while (in < inlim) {
|
||||
- if (firsttime)
|
||||
- firsttime = 0;
|
||||
- else
|
||||
+
|
||||
+ in = (const 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) {
|
||||
*out++ = '.';
|
||||
+ rem--;
|
||||
+ }
|
||||
i = *in++;
|
||||
if (i > 0xf) {
|
||||
- out[1] = hexlist[i & 0xf];
|
||||
+ if (rem < 3)
|
||||
+ break;
|
||||
+ *out++ = hexlist[i & 0xf];
|
||||
i >>= 4;
|
||||
- out[0] = hexlist[i];
|
||||
- out += 2;
|
||||
- } else
|
||||
*out++ = hexlist[i];
|
||||
+ rem -= 2;
|
||||
+ } else {
|
||||
+ if (rem < 2)
|
||||
+ break;
|
||||
+ *out++ = hexlist[i];
|
||||
+ rem++;
|
||||
+ }
|
||||
}
|
||||
*out = 0;
|
||||
return (obuf);
|
||||
Loading…
Add table
Add a link
Reference in a new issue