Author: bapt
Date: Mon Jul 13 05:59:41 2015
New Revision: 285438
URL: https://svnweb.freebsd.org/changeset/base/285438

Log:
  Prevent potential integer overflow
  
  PR:           192971
  Submitted by: David Carlier <david.carl...@hardenedbsd.org>

Modified:
  head/bin/stty/stty.c

Modified: head/bin/stty/stty.c
==============================================================================
--- head/bin/stty/stty.c        Mon Jul 13 05:56:27 2015        (r285437)
+++ head/bin/stty/stty.c        Mon Jul 13 05:59:41 2015        (r285438)
@@ -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;
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to