diff options
author | 2003-01-31 17:51:16 +0000 | |
---|---|---|
committer | 2003-01-31 17:51:16 +0000 | |
commit | 912876f0b4d88eaa10c1f8e405ffaa51e445378e (patch) | |
tree | 4eca32cab3e638bb403adf72aa3277e7322a3805 | |
parent | File system locking fixups, mostly from NetBSD: (diff) | |
download | wireguard-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.c | 107 |
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; |