]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
blkid: avoid potential integer overflow issues identified by Coverity
authorTheodore Ts'o <tytso@mit.edu>
Thu, 30 Jan 2014 21:19:01 +0000 (16:19 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 30 Jan 2014 23:25:15 +0000 (18:25 -0500)
Addresses-Coverity-Id: #1049157
Addresses-Coverity-Id: #1049158

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
misc/blkid.c

index c40de986b37062b2c1956e9e9df45a710ad32377..55808af80a0749b793272959bd372ede4258f1c1 100644 (file)
@@ -100,19 +100,27 @@ static int get_terminal_width(void)
        struct winsize  w_win;
 #endif
         const char     *cp;
+       int width = 80;
 
 #ifdef TIOCGSIZE
-       if (ioctl (0, TIOCGSIZE, &t_win) == 0)
-               return (t_win.ts_cols);
+       if (ioctl (0, TIOCGSIZE, &t_win) == 0) {
+               width = t_win.ts_cols;
+               goto got_it;
+       }
 #endif
 #ifdef TIOCGWINSZ
-       if (ioctl (0, TIOCGWINSZ, &w_win) == 0)
-               return (w_win.ws_col);
+       if (ioctl (0, TIOCGWINSZ, &w_win) == 0) {
+               width = w_win.ws_col;
+               goto got_it;
+       }
 #endif
         cp = getenv("COLUMNS");
        if (cp)
-               return strtol(cp, NULL, 10);
-       return 80;
+               width = atoi(cp);
+got_it:
+       if (width > 4096)
+               return 4096;    /* sanity check */
+       return width;
 }
 
 static int pretty_print_word(const char *str, int max_len,