diff options
author | mestre <mestre@openbsd.org> | 2016-03-16 20:09:58 +0000 |
---|---|---|
committer | mestre <mestre@openbsd.org> | 2016-03-16 20:09:58 +0000 |
commit | 2eba59a5c776ba4312daa5d5e99251a39216eee6 (patch) | |
tree | 8b006a76e317b5399e59540acd52168477214618 /usr.sbin/inetd | |
parent | notab mode is not enabled at the moment. (diff) | |
download | wireguard-openbsd-2eba59a5c776ba4312daa5d5e99251a39216eee6.tar.xz wireguard-openbsd-2eba59a5c776ba4312daa5d5e99251a39216eee6.zip |
Replace atoi(3) calls for safer strtonum(3)
OK deeradt@ jca@
Diffstat (limited to 'usr.sbin/inetd')
-rw-r--r-- | usr.sbin/inetd/inetd.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/usr.sbin/inetd/inetd.c b/usr.sbin/inetd/inetd.c index a2eb45321a2..08f5b0ae006 100644 --- a/usr.sbin/inetd/inetd.c +++ b/usr.sbin/inetd/inetd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: inetd.c,v 1.150 2015/12/22 19:44:01 mmcc Exp $ */ +/* $OpenBSD: inetd.c,v 1.151 2016/03/16 20:09:58 mestre Exp $ */ /* * Copyright (c) 1983,1991 The Regents of the University of California. @@ -421,7 +421,7 @@ gettcp(int fd, short events, void *xsep) } if (getnameinfo((struct sockaddr *)&peer, plen, NULL, 0, sbuf, sizeof(sbuf), NI_NUMERICSERV) == 0 && - atoi(sbuf) == 20) { + strtonum(sbuf, 1, USHRT_MAX, NULL) == 20) { /* * ignore things that look like ftp bounce */ @@ -550,7 +550,7 @@ config(int sig, short event, void *arg) { struct servtab *sep, *cp, **sepp; int add; - char protoname[10]; + char protoname[11]; if (!setconfig()) { syslog(LOG_ERR, "%s: %m", CONFIG); @@ -625,7 +625,8 @@ config(int sig, short event, void *arg) if (isrpcservice(sep)) { struct rpcent *rp; - sep->se_rpcprog = atoi(sep->se_service); + sep->se_rpcprog = strtonum(sep->se_service, + 1, USHRT_MAX, NULL); if (sep->se_rpcprog == 0) { rp = getrpcbyname(sep->se_service); if (rp == 0) { @@ -641,7 +642,8 @@ config(int sig, short event, void *arg) if (sep->se_fd != -1) register_rpc(sep); } else { - u_short port = htons(atoi(sep->se_service)); + u_short port = htons(strtonum(sep->se_service, + 1, USHRT_MAX, NULL)); if (!port) { /* XXX */ @@ -680,7 +682,8 @@ config(int sig, short event, void *arg) if (isrpcservice(sep)) { struct rpcent *rp; - sep->se_rpcprog = atoi(sep->se_service); + sep->se_rpcprog = strtonum(sep->se_service, + 1, USHRT_MAX, NULL); if (sep->se_rpcprog == 0) { rp = getrpcbyname(sep->se_service); if (rp == 0) { @@ -696,7 +699,8 @@ config(int sig, short event, void *arg) if (sep->se_fd != -1) register_rpc(sep); } else { - u_short port = htons(atoi(sep->se_service)); + u_short port = htons(strtonum(sep->se_service, + 1, USHRT_MAX, NULL)); if (!port) { /* XXX */ |