summaryrefslogtreecommitdiffstats
path: root/usr.sbin/rtsold
diff options
context:
space:
mode:
authorume <ume@FreeBSD.org>2003-08-11 15:49:47 +0000
committerume <ume@FreeBSD.org>2003-08-11 15:49:47 +0000
commit44f95bb1cf973ee7e97882481b4462f246d78836 (patch)
tree1c20b2e94f632085097f94556620788a63d45a06 /usr.sbin/rtsold
parentb984cea4428252c6c92362d4e353c589314d8887 (diff)
downloadFreeBSD-src-44f95bb1cf973ee7e97882481b4462f246d78836.zip
FreeBSD-src-44f95bb1cf973ee7e97882481b4462f246d78836.tar.gz
use strlcpy() and snprintf().
Obtained from: KAME MFC after: 1 week
Diffstat (limited to 'usr.sbin/rtsold')
-rw-r--r--usr.sbin/rtsold/dump.c21
-rw-r--r--usr.sbin/rtsold/probe.c6
-rw-r--r--usr.sbin/rtsold/rtsold.c2
3 files changed, 20 insertions, 9 deletions
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