summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>1996-11-25 03:57:56 +0000
committerderaadt <deraadt@openbsd.org>1996-11-25 03:57:56 +0000
commit8a2f99b04dc98dea1fb18c023d29ac427c43e5fe (patch)
tree914b11f0dd3b30351de2e362c540e80fa6d91129
parentLiar, -w doesn't have a default value. (diff)
downloadwireguard-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.c8
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);