summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bin/stty/stty.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/bin/stty/stty.c b/bin/stty/stty.c
index b70f49f..26e02e4 100644
--- a/bin/stty/stty.c
+++ b/bin/stty/stty.c
@@ -47,6 +47,7 @@ __FBSDID("$FreeBSD$");
#include <err.h>
#include <errno.h>
#include <fcntl.h>
+#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -61,7 +62,7 @@ main(int argc, char *argv[])
struct info i;
enum FMT fmt;
int ch;
- const char *file;
+ const char *file, *errstr = NULL;
fmt = NOTSET;
i.fd = STDIN_FILENO;
@@ -130,7 +131,9 @@ args: argc -= optind;
if (isdigit(**argv)) {
speed_t speed;
- speed = atoi(*argv);
+ speed = strtonum(*argv, 0, UINT_MAX, &errstr);
+ if (errstr)
+ err(1, "speed");
cfsetospeed(&i.t, speed);
cfsetispeed(&i.t, speed);
i.set = 1;
OpenPOWER on IntegriCloud