]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
pg: check numeric user inputs
authorSami Kerola <kerolasa@iki.fi>
Tue, 2 Oct 2012 20:15:18 +0000 (21:15 +0100)
committerKarel Zak <kzak@redhat.com>
Mon, 15 Oct 2012 13:54:25 +0000 (15:54 +0200)
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Signed-off-by: Karel Zak <kzak@redhat.com>
text-utils/Makemodule.am
text-utils/pg.c

index 23185eaa6af0e7f57d3efec619a0694b7f190c4f..f2c10ebc6f618a8163a0fda5f7d3a3fe4c28ee42 100644 (file)
@@ -59,11 +59,11 @@ pg_SOURCES = text-utils/pg.c
 
 if HAVE_TINFO
 more_LDADD = $(LDADD) -ltinfo
-pg_LDADD = $(LDADD) -ltinfo @NCURSES_LIBS@
+pg_LDADD = $(LDADD) libcommon.la -ltinfo @NCURSES_LIBS@
 ul_LDADD = $(LDADD) -ltinfo
 else
 more_LDADD = $(LDADD) @NCURSES_LIBS@
-pg_LDADD = $(LDADD) @NCURSES_LIBS@
+pg_LDADD = $(LDADD) libcommon.la @NCURSES_LIBS@
 ul_LDADD = $(LDADD) @NCURSES_LIBS@
 endif
 
index 9ade866ed8e519364aba8a16586379e052977c2c..fa5639be298dc5f4f56b040a974459faf8338af5 100644 (file)
@@ -64,6 +64,7 @@
 #include "widechar.h"
 #include "all-io.h"
 #include "closestream.h"
+#include "strutils.h"
 
 #define        READBUF         LINE_MAX        /* size of input buffer */
 #define CMDBUF         255             /* size of command buffer */
@@ -1623,7 +1624,8 @@ main(int argc, char **argv)
                                goto endargs;
                        case '1': case '2': case '3': case '4': case '5':
                        case '6': case '7': case '8': case '9': case '0':
-                               pagelen = atoi(argv[arg] + i);
+                               pagelen = strtol_or_err(argv[arg] + 1,
+                                               _("failed to parse number of lines per page"));
                                havepagelen = 1;
                                goto nextarg;
                        case 'c':
@@ -1687,7 +1689,8 @@ endargs:
                        /*NOTREACHED*/
                case '1': case '2': case '3': case '4': case '5':
                case '6': case '7': case '8': case '9': case '0':
-                       startline = atoi(argv[arg] + 1);
+                       startline = strtol_or_err(argv[arg] + 1,
+                                       _("failed to parse number of lines per page"));
                        break;
                case '/':
                        searchfor = argv[arg] + 2;