diff options
author | 1996-11-25 03:57:56 +0000 | |
---|---|---|
committer | 1996-11-25 03:57:56 +0000 | |
commit | 8a2f99b04dc98dea1fb18c023d29ac427c43e5fe (patch) | |
tree | 914b11f0dd3b30351de2e362c540e80fa6d91129 | |
parent | Liar, -w doesn't have a default value. (diff) | |
download | wireguard-openbsd-8a2f99b04dc98dea1fb18c023d29ac427c43e5fe.tar.xz wireguard-openbsd-8a2f99b04dc98dea1fb18c023d29ac427c43e5fe.zip |
revoke privs; do not call getnetbyname if not needed, bmah@cs.berkeley.edu
-rw-r--r-- | sbin/route/route.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sbin/route/route.c b/sbin/route/route.c index fdf45a4015e..630b009cb22 100644 --- a/sbin/route/route.c +++ b/sbin/route/route.c @@ -1,4 +1,4 @@ -/* $OpenBSD: route.c,v 1.11 1996/10/27 15:11:10 deraadt Exp $ */ +/* $OpenBSD: route.c,v 1.12 1996/11/25 03:57:56 deraadt Exp $ */ /* $NetBSD: route.c,v 1.16 1996/04/15 18:27:05 cgd Exp $ */ /* @@ -44,7 +44,7 @@ static char copyright[] = #if 0 static char sccsid[] = "@(#)route.c 8.3 (Berkeley) 3/19/94"; #else -static char rcsid[] = "$OpenBSD: route.c,v 1.11 1996/10/27 15:11:10 deraadt Exp $"; +static char rcsid[] = "$OpenBSD: route.c,v 1.12 1996/11/25 03:57:56 deraadt Exp $"; #endif #endif /* not lint */ @@ -178,6 +178,7 @@ main(argc, argv) s = open("/dev/null", O_WRONLY, 0); else s = socket(PF_ROUTE, SOCK_RAW, 0); + setuid(uid); if (s < 0) quit("socket"); if (*argv) @@ -911,7 +912,8 @@ getaddr(which, s, hpp) } } if ((val = inet_network(s)) != INADDR_NONE || - ((np = getnetbyname(s)) != NULL && (val = np->n_net) != 0)) { + (forcehost == 0 && (np = getnetbyname(s)) != NULL && + (val = np->n_net) != 0)) { netdone: if (which == RTA_DST) inet_makenetandmask(val, &su->sin); |