diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 1998-02-26 10:13:09 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 1998-02-26 10:13:09 +0000 |
commit | 6ee5c235ff91760acdd291bab17ce8b35ed40042 (patch) | |
tree | cc571acfce7cf823591bac35577320d3ea5c731a | |
parent | 2fad9e4b488ab696ae0e8593ca5a35157476aa25 (diff) |
strncpy sanitization
-rw-r--r-- | usr.bin/netstat/route.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/usr.bin/netstat/route.c b/usr.bin/netstat/route.c index c9f4bc1ccc6..ede80196681 100644 --- a/usr.bin/netstat/route.c +++ b/usr.bin/netstat/route.c @@ -1,4 +1,4 @@ -/* $OpenBSD: route.c,v 1.21 1998/02/26 10:06:13 peter Exp $ */ +/* $OpenBSD: route.c,v 1.22 1998/02/26 10:13:08 deraadt Exp $ */ /* $NetBSD: route.c,v 1.15 1996/05/07 02:55:06 thorpej Exp $ */ /* @@ -38,7 +38,7 @@ #if 0 static char sccsid[] = "from: @(#)route.c 8.3 (Berkeley) 3/9/94"; #else -static char *rcsid = "$OpenBSD: route.c,v 1.21 1998/02/26 10:06:13 peter Exp $"; +static char *rcsid = "$OpenBSD: route.c,v 1.22 1998/02/26 10:13:08 deraadt Exp $"; #endif #endif /* not lint */ @@ -575,9 +575,10 @@ routename(in) cp = hp->h_name; } } - if (cp) + if (cp) { strncpy(line, cp, sizeof(line) - 1); - else { + line[sizeof(line) - 1] = '\0'; + } else { #define C(x) ((x) & 0xff) in = ntohl(in); sprintf(line, "%u.%u.%u.%u", @@ -607,9 +608,10 @@ netname(in, mask) cp = np->n_name; } mbits = mask ? 33 - ffs(mask) : 0; - if (cp) + if (cp) { strncpy(line, cp, sizeof(line) - 1); - else if ((in & 0xffffff) == 0) + line[sizeof(line) - 1] = '\0'; + } else if ((in & 0xffffff) == 0) sprintf(line, "%u/%d", C(in >> 24), mbits); else if ((in & 0xffff) == 0) sprintf(line, "%u.%u/%d", C(in >> 24) , C(in >> 16), mbits); |