diff options
author | 2015-02-11 12:36:40 +0000 | |
---|---|---|
committer | 2015-02-11 12:36:40 +0000 | |
commit | dcb68127fdb11313cc59fe79f4bd1b3466290102 (patch) | |
tree | ac23ff14b3ec1bb09414c612fc1526e3086e91ec | |
parent | dlg@ said he had fixed sparc64, but I'm afraid this requires <sys/lock.h> (diff) | |
download | wireguard-openbsd-dcb68127fdb11313cc59fe79f4bd1b3466290102.tar.xz wireguard-openbsd-dcb68127fdb11313cc59fe79f4bd1b3466290102.zip |
use strtonum for ispeed & ospeed, rejecting those numbers.
-rw-r--r-- | bin/stty/key.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/bin/stty/key.c b/bin/stty/key.c index a3574ec1a29..b45d941eb08 100644 --- a/bin/stty/key.c +++ b/bin/stty/key.c @@ -1,4 +1,4 @@ -/* $OpenBSD: key.c,v 1.14 2009/10/28 20:58:38 deraadt Exp $ */ +/* $OpenBSD: key.c,v 1.15 2015/02/11 12:36:40 deraadt Exp $ */ /* $NetBSD: key.c,v 1.11 1995/09/07 06:57:11 jtc Exp $ */ /*- @@ -210,8 +210,13 @@ f_extproc(struct info *ip) void f_ispeed(struct info *ip) { - - cfsetispeed(&ip->t, atoi(ip->arg)); + const char *errstr; + speed_t speed; + + speed = strtonum(ip->arg, 0, UINT_MAX, &errstr); + if (errstr) + err(1, "ispeed %s", ip->arg); + cfsetispeed(&ip->t, speed); ip->set = 1; } @@ -247,8 +252,13 @@ f_nl(struct info *ip) void f_ospeed(struct info *ip) { - - cfsetospeed(&ip->t, atoi(ip->arg)); + const char *errstr; + speed_t speed; + + speed = strtonum(ip->arg, 0, UINT_MAX, &errstr); + if (errstr) + err(1, "ospeed %s", ip->arg); + cfsetospeed(&ip->t, speed); ip->set = 1; } |