summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormillert <millert@openbsd.org>2003-01-31 17:51:16 +0000
committermillert <millert@openbsd.org>2003-01-31 17:51:16 +0000
commit912876f0b4d88eaa10c1f8e405ffaa51e445378e (patch)
tree4eca32cab3e638bb403adf72aa3277e7322a3805
parentFile system locking fixups, mostly from NetBSD: (diff)
downloadwireguard-openbsd-912876f0b4d88eaa10c1f8e405ffaa51e445378e.tar.xz
wireguard-openbsd-912876f0b4d88eaa10c1f8e405ffaa51e445378e.zip
o When checking for root, look at effective, not real uid; checking the
real uid made sense when route(8) was setuid root but it no longer is. o ANSIfy deraadt@ OK
-rw-r--r--sbin/route/route.c107
1 files changed, 34 insertions, 73 deletions
diff --git a/sbin/route/route.c b/sbin/route/route.c
index a61cda1072e..6f239e6882e 100644
--- a/sbin/route/route.c
+++ b/sbin/route/route.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: route.c,v 1.53 2002/11/24 20:56:24 henning Exp $ */
+/* $OpenBSD: route.c,v 1.54 2003/01/31 17:51:16 millert Exp $ */
/* $NetBSD: route.c,v 1.16 1996/04/15 18:27:05 cgd Exp $ */
/*
@@ -35,16 +35,16 @@
*/
#ifndef lint
-static char copyright[] =
+static const char copyright[] =
"@(#) Copyright (c) 1983, 1989, 1991, 1993\n\
The Regents of the University of California. All rights reserved.\n";
#endif /* not lint */
#ifndef lint
#if 0
-static char sccsid[] = "@(#)route.c 8.3 (Berkeley) 3/19/94";
+static const char sccsid[] = "@(#)route.c 8.3 (Berkeley) 3/19/94";
#else
-static char rcsid[] = "$OpenBSD: route.c,v 1.53 2002/11/24 20:56:24 henning Exp $";
+static const char rcsid[] = "$OpenBSD: route.c,v 1.54 2003/01/31 17:51:16 millert Exp $";
#endif
#endif /* not lint */
@@ -123,8 +123,7 @@ int x25_makemask(void);
extern void show(int, char **); /* XXX - from show.c */
__dead void
-usage(cp)
- char *cp;
+usage(char *cp)
{
if (cp)
(void) fprintf(stderr, "route: botched keyword: %s\n", cp);
@@ -137,8 +136,7 @@ usage(cp)
}
void
-quit(s)
- char *s;
+quit(char *s)
{
int sverrno = errno;
@@ -155,9 +153,7 @@ quit(s)
#define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len))
int
-main(argc, argv)
- int argc;
- char **argv;
+main(int argc, char **argv)
{
int ch;
int rval = 0;
@@ -189,9 +185,9 @@ main(argc, argv)
argv += optind;
pid = getpid();
- uid = getuid();
+ uid = geteuid();
if (tflag)
- s = open("/dev/null", O_WRONLY);
+ s = open(_PATH_DEVNULL, O_WRONLY);
else
s = socket(PF_ROUTE, SOCK_RAW, 0);
if (s < 0)
@@ -229,9 +225,7 @@ main(argc, argv)
* associated with network interfaces.
*/
void
-flushroutes(argc, argv)
- int argc;
- char *argv[];
+flushroutes(int argc, char **argv)
{
size_t needed;
int mib[6], rlen, seqno;
@@ -346,8 +340,7 @@ bad: usage(*argv);
static char hexlist[] = "0123456789abcdef";
char *
-any_ntoa(sa)
- const struct sockaddr *sa;
+any_ntoa(const struct sockaddr *sa)
{
static char obuf[240];
const char *in = sa->sa_data;
@@ -365,8 +358,7 @@ any_ntoa(sa)
}
char *
-routename(sa)
- struct sockaddr *sa;
+routename(struct sockaddr *sa)
{
char *cp = NULL;
static char line[MAXHOSTNAMELEN];
@@ -471,8 +463,7 @@ routename(sa)
* The address is assumed to be that of a net or subnet, not a host.
*/
char *
-netname(sa)
- struct sockaddr *sa;
+netname(struct sockaddr *sa)
{
char *cp = NULL;
static char line[MAXHOSTNAMELEN];
@@ -579,9 +570,7 @@ netname(sa)
}
void
-set_metric(value, key)
- char *value;
- int key;
+set_metric(char *value, int key)
{
int flag = 0;
u_long noval, *valp = &noval;
@@ -606,9 +595,7 @@ set_metric(value, key)
}
int
-newroute(argc, argv)
- int argc;
- char **argv;
+newroute(int argc, char **argv)
{
char *cmd, *dest = "", *gateway = "", *err;
int ishost = 0, ret = 0, attempts, oerrno, flags = RTF_STATIC;
@@ -842,10 +829,7 @@ newroute(argc, argv)
}
void
-inet_makenetandmask(net, sin, bits)
- u_int32_t net;
- struct sockaddr_in *sin;
- int bits;
+inet_makenetandmask(u_int32_t net, struct sockaddr_in *sin, int bits)
{
u_int32_t addr, mask = 0;
char *cp;
@@ -892,8 +876,7 @@ inet_makenetandmask(net, sin, bits)
* XXX the function may need more improvement...
*/
static int
-inet6_makenetandmask(sin6)
- struct sockaddr_in6 *sin6;
+inet6_makenetandmask(struct sockaddr_in6 *sin6)
{
char *plen = NULL;
struct in6_addr in6;
@@ -923,10 +906,7 @@ inet6_makenetandmask(sin6)
* returning 1 if a host address, 0 if a network address.
*/
int
-getaddr(which, s, hpp)
- int which;
- char *s;
- struct hostent **hpp;
+getaddr(int which, char *s, struct hostent **hpp)
{
sup su = NULL;
struct ns_addr ns_addr();
@@ -1132,8 +1112,7 @@ netdone:
}
int
-prefixlen(s)
- char *s;
+prefixlen(char *s)
{
int len = atoi(s), q, r;
int max;
@@ -1186,7 +1165,7 @@ prefixlen(s)
}
int
-x25_makemask()
+x25_makemask(void)
{
char *cp;
@@ -1204,8 +1183,7 @@ short ns_nullh[] = {0,0,0};
short ns_bh[] = {-1,-1,-1};
char *
-ns_print(sns)
- struct sockaddr_ns *sns;
+ns_print(struct sockaddr_ns *sns)
{
struct ns_addr work;
union { union ns_net net_e; u_int32_t long_e; } net;
@@ -1250,8 +1228,7 @@ short ipx_nullh[] = {0,0,0};
short ipx_bh[] = {-1,-1,-1};
char *
-ipx_print(sipx)
- struct sockaddr_ipx *sipx;
+ipx_print(struct sockaddr_ipx *sipx)
{
struct ipx_addr work;
union { union ipx_net net_e; u_int32_t long_e; } net;
@@ -1295,7 +1272,7 @@ ipx_print(sipx)
}
void
-interfaces()
+interfaces(void)
{
size_t needed;
int mib[6];
@@ -1325,7 +1302,7 @@ interfaces()
}
void
-monitor()
+monitor(void)
{
int n;
char msg[2048];
@@ -1350,8 +1327,7 @@ struct {
} m_rtmsg;
int
-rtmsg(cmd, flags)
- int cmd, flags;
+rtmsg(int cmd, int flags)
{
static int seq;
int rlen;
@@ -1421,7 +1397,7 @@ rtmsg(cmd, flags)
}
void
-mask_addr()
+mask_addr(void)
{
int olen = so_mask.sa.sa_len;
char *cp1 = olen + (char *)&so_mask, *cp2;
@@ -1491,9 +1467,7 @@ char addrnames[] =
"\1DST\2GATEWAY\3NETMASK\4GENMASK\5IFP\6IFA\7AUTHOR\010BRD";
void
-print_rtmsg(rtm, msglen)
- struct rt_msghdr *rtm;
- int msglen;
+print_rtmsg(struct rt_msghdr *rtm, int msglen)
{
struct if_msghdr *ifm;
struct ifa_msghdr *ifam;
@@ -1529,9 +1503,7 @@ print_rtmsg(rtm, msglen)
}
void
-print_getmsg(rtm, msglen)
- struct rt_msghdr *rtm;
- int msglen;
+print_getmsg(struct rt_msghdr *rtm, int msglen)
{
struct sockaddr *dst = NULL, *gate = NULL, *mask = NULL;
struct sockaddr_dl *ifp = NULL;
@@ -1627,8 +1599,7 @@ print_getmsg(rtm, msglen)
}
void
-pmsg_common(rtm)
- struct rt_msghdr *rtm;
+pmsg_common(struct rt_msghdr *rtm)
{
(void) printf("\nlocks: ");
bprintf(stdout, rtm->rtm_rmx.rmx_locks, metricnames);
@@ -1638,9 +1609,7 @@ pmsg_common(rtm)
}
void
-pmsg_addrs(cp, addrs)
- char *cp;
- int addrs;
+pmsg_addrs(char *cp, int addrs)
{
struct sockaddr *sa;
int i;
@@ -1661,10 +1630,7 @@ pmsg_addrs(cp, addrs)
}
void
-bprintf(fp, b, s)
- FILE *fp;
- int b;
- u_char *s;
+bprintf(FILE *fp, int b, u_char *s)
{
int i;
int gotsome = 0;
@@ -1690,8 +1656,7 @@ bprintf(fp, b, s)
}
int
-keyword(cp)
- char *cp;
+keyword(char *cp)
{
struct keytab *kt = keywords;
@@ -1701,9 +1666,7 @@ keyword(cp)
}
void
-sodump(su, which)
- sup su;
- char *which;
+sodump(sup su, char *which)
{
#ifdef INET6
char ntop_buf[NI_MAXHOST]; /*for inet_ntop()*/
@@ -1751,9 +1714,7 @@ sodump(su, which)
#define DELIM (4*2)
void
-sockaddr(addr, sa)
- char *addr;
- struct sockaddr *sa;
+sockaddr(char *addr, struct sockaddr *sa)
{
char *cp = (char *)sa;
int size = sa->sa_len;