summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--usr.sbin/rtadvd/advcap.c4
-rw-r--r--usr.sbin/rtadvd/config.c2
-rw-r--r--usr.sbin/rtadvd/dump.c8
-rw-r--r--usr.sbin/rtsold/dump.c21
-rw-r--r--usr.sbin/rtsold/probe.c6
-rw-r--r--usr.sbin/rtsold/rtsold.c2
6 files changed, 27 insertions, 16 deletions
diff --git a/usr.sbin/rtadvd/advcap.c b/usr.sbin/rtadvd/advcap.c
index f201d0c..b83fbbb 100644
--- a/usr.sbin/rtadvd/advcap.c
+++ b/usr.sbin/rtadvd/advcap.c
@@ -1,5 +1,5 @@
/* $FreeBSD$ */
-/* $KAME: advcap.c,v 1.5 2001/02/01 09:12:08 jinmei Exp $ */
+/* $KAME: advcap.c,v 1.11 2003/05/19 09:46:50 keiichi Exp $ */
/*
* Copyright (c) 1983 The Regents of the University of California.
@@ -206,7 +206,7 @@ tnchktc()
/* p now points to beginning of last field */
if (p[0] != 't' || p[1] != 'c')
return (1);
- strcpy(tcname, p+3);
+ strlcpy(tcname, p + 3, sizeof tcname);
q = tcname;
while (*q && *q != ':')
q++;
diff --git a/usr.sbin/rtadvd/config.c b/usr.sbin/rtadvd/config.c
index f8c8abb..7f3d417 100644
--- a/usr.sbin/rtadvd/config.c
+++ b/usr.sbin/rtadvd/config.c
@@ -602,7 +602,7 @@ makeentry(buf, len, id, string, add)
{
char *ep = buf + len;
- strcpy(buf, string);
+ strlcpy(buf, string, len);
if (add) {
char *cp;
diff --git a/usr.sbin/rtadvd/dump.c b/usr.sbin/rtadvd/dump.c
index 122f31f..bd19687 100644
--- a/usr.sbin/rtadvd/dump.c
+++ b/usr.sbin/rtadvd/dump.c
@@ -83,17 +83,17 @@ static char *
ether_str(sdl)
struct sockaddr_dl *sdl;
{
- static char ebuf[32];
+ static char hbuf[32];
u_char *cp;
if (sdl->sdl_alen && sdl->sdl_alen > 5) {
cp = (u_char *)LLADDR(sdl);
- sprintf(ebuf, "%x:%x:%x:%x:%x:%x",
+ snprintf(hbuf, sizeof(hbuf), "%x:%x:%x:%x:%x:%x",
cp[0], cp[1], cp[2], cp[3], cp[4], cp[5]);
} else
- sprintf(ebuf, "NONE");
+ snprintf(hbuf, sizeof(hbuf), "NONE");
- return(ebuf);
+ return(hbuf);
}
static void
diff --git a/usr.sbin/rtsold/dump.c b/usr.sbin/rtsold/dump.c
index 72d31b9..3902fc0 100644
--- a/usr.sbin/rtsold/dump.c
+++ b/usr.sbin/rtsold/dump.c
@@ -1,4 +1,4 @@
-/* $KAME: dump.c,v 1.8 2000/10/05 22:20:39 itojun Exp $ */
+/* $KAME: dump.c,v 1.12 2003/04/11 10:14:55 jinmei Exp $ */
/*
* Copyright (C) 1999 WIDE Project.
@@ -117,6 +117,8 @@ sec2str(total)
int days, hours, mins, secs;
int first = 1;
char *p = result;
+ char *ep = &result[sizeof(result)];
+ int n;
days = total / 3600 / 24;
hours = (total / 3600) % 24;
@@ -125,16 +127,25 @@ sec2str(total)
if (days) {
first = 0;
- p += sprintf(p, "%dd", days);
+ n = snprintf(p, ep - p, "%dd", days);
+ if (n < 0 || n >= ep - p)
+ return "?";
+ p += n;
}
if (!first || hours) {
first = 0;
- p += sprintf(p, "%dh", hours);
+ n = snprintf(p, ep - p, "%dh", hours);
+ if (n < 0 || n >= ep - p)
+ return "?";
+ p += n;
}
if (!first || mins) {
first = 0;
- p += sprintf(p, "%dm", mins);
+ n = snprintf(p, ep - p, "%dm", mins);
+ if (n < 0 || n >= ep - p)
+ return "?";
+ p += n;
}
- sprintf(p, "%ds", secs);
+ snprintf(p, ep - p, "%ds", secs);
return(result);
}
diff --git a/usr.sbin/rtsold/probe.c b/usr.sbin/rtsold/probe.c
index 33f33f9..a946381 100644
--- a/usr.sbin/rtsold/probe.c
+++ b/usr.sbin/rtsold/probe.c
@@ -110,8 +110,8 @@ defrouter_probe(int ifindex)
warnmsg(LOG_ERR, __func__, "socket: %s", strerror(errno));
return;
}
- bzero(&dr, sizeof(dr));
- strcpy(dr.ifname, "lo0"); /* dummy interface */
+ memset(&dr, 0, sizeof(dr));
+ strlcpy(dr.ifname, "lo0", sizeof dr.ifname); /* dummy interface */
if (ioctl(s, SIOCGDRLST_IN6, (caddr_t)&dr) < 0) {
warnmsg(LOG_ERR, __func__, "ioctl(SIOCGDRLST_IN6): %s",
strerror(errno));
@@ -148,7 +148,7 @@ sendprobe(struct in6_addr *addr, int ifindex)
u_char ntopbuf[INET6_ADDRSTRLEN], ifnamebuf[IFNAMSIZ];
int hoplimit = 1;
- bzero(&sa6_probe, sizeof(sa6_probe));
+ memset(&sa6_probe, 0, sizeof(sa6_probe));
sa6_probe.sin6_family = AF_INET6;
sa6_probe.sin6_len = sizeof(sa6_probe);
sa6_probe.sin6_addr = *addr;
diff --git a/usr.sbin/rtsold/rtsold.c b/usr.sbin/rtsold/rtsold.c
index cc300ac..a1fd93c 100644
--- a/usr.sbin/rtsold/rtsold.c
+++ b/usr.sbin/rtsold/rtsold.c
@@ -359,7 +359,7 @@ ifconfig(char *ifname)
memset(ifinfo, 0, sizeof(*ifinfo));
ifinfo->sdl = sdl;
- strncpy(ifinfo->ifname, ifname, sizeof(ifinfo->ifname));
+ strlcpy(ifinfo->ifname, ifname, sizeof(ifinfo->ifname));
/* construct a router solicitation message */
if (make_packet(ifinfo))
OpenPOWER on IntegriCloud