]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
dmesg: use strtol_or_err instead of atoi
authorDavidlohr Bueso <dave@gnu.org>
Thu, 3 Feb 2011 20:41:56 +0000 (17:41 -0300)
committerKarel Zak <kzak@redhat.com>
Tue, 8 Feb 2011 14:40:48 +0000 (15:40 +0100)
We shouldn't be accepting things like 'dmesg -n 2crapinput'
This patch also changes the exit's value to use EXIT_* constants.

Signed-off-by: Davidlohr Bueso <dave@gnu.org>
sys-utils/Makefile.am
sys-utils/dmesg.c

index ee6f2d74c1e17d3cdbcc97834e9b0fb1f205429c..d916d3d04f09009810d961f01aff07a639ec9243 100644 (file)
@@ -29,6 +29,7 @@ cytune_SOURCES = cytune.c cyclades.h
 tunelp_SOURCES = tunelp.c lp.h
 fstrim_SOURCES = fstrim.c $(top_srcdir)/lib/strutils.c
 rtcwake_SOURCES = rtcwake.c $(top_srcdir)/lib/strutils.c
+dmesg_SOURCES = dmesg.c $(top_srcdir)/lib/strutils.c
 
 if BUILD_FALLOCATE
 usrbin_exec_PROGRAMS += fallocate
index f1a7dcb7c380edd481acce5f2e7965d92231a2aa..49fd707abf8f10f2c0a781ecf4b31bca8fcbfc59 100644 (file)
 #include <stdio.h>
 #include <getopt.h>
 #include <stdlib.h>
-# include <sys/klog.h>
+#include <sys/klog.h>
 
 #include "nls.h"
+#include "strutils.h"
 
 static char *progname;
 
@@ -70,20 +71,20 @@ main(int argc, char *argv[]) {
                        break;
                case 'n':
                        cmd = 8;        /* Set level of messages */
-                       level = atoi(optarg);
+                       level = strtol_or_err(optarg, _("failed to parse level"));
                        break;
                case 'r':
                        raw = 1;
                        break;
                case 's':
-                       bufsize = atoi(optarg);
+                       bufsize = strtol_or_err(optarg, _("failed to parse buffer size"));
                        if (bufsize < 4096)
                                bufsize = 4096;
                        break;
                case '?':
                default:
                        usage();
-                       exit(1);
+                       exit(EXIT_FAILURE);
                }
        }
        argc -= optind;
@@ -91,16 +92,16 @@ main(int argc, char *argv[]) {
 
        if (argc > 1) {
                usage();
-               exit(1);
+               exit(EXIT_FAILURE);
        }
 
        if (cmd == 8) {
                n = klogctl(cmd, NULL, level);
                if (n < 0) {
                        perror("klogctl");
-                       exit(1);
+                       exit(EXIT_FAILURE);
                }
-               exit(0);
+               exit(EXIT_SUCCESS);
        }
 
        if (!bufsize) {
@@ -130,7 +131,7 @@ main(int argc, char *argv[]) {
 
        if (n < 0) {
                perror("klogctl");
-               exit(1);
+               exit(EXIT_FAILURE);
        }
 
        lastc = '\n';