From ab3a34ffc9d84f8c16cff29874e46456b26bf00a Mon Sep 17 00:00:00 2001 From: Sami Kerola Date: Thu, 30 Jun 2011 21:27:42 +0200 Subject: isosize: check user input to be numeric Signed-off-by: Sami Kerola --- disk-utils/isosize.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'disk-utils/isosize.c') diff --git a/disk-utils/isosize.c b/disk-utils/isosize.c index 547d450d0..a59d46d9e 100644 --- a/disk-utils/isosize.c +++ b/disk-utils/isosize.c @@ -28,6 +28,7 @@ #include "nls.h" #include "c.h" +#include "strutils.h" #define ISODCL(from, to) (to - from + 1) @@ -117,7 +118,7 @@ struct iso_primary_descriptor { }; static void -isosize(char *filenamep, int xflag, int divisor) { +isosize(char *filenamep, int xflag, long divisor) { int fd, nsecs, ssize; struct iso_primary_descriptor ipd; @@ -168,7 +169,7 @@ static void __attribute__((__noreturn__)) usage(FILE *out) int main(int argc, char * argv[]) { int j, ct, opt, xflag = 0; - int divisor = 0; + long divisor = 0; static const struct option longopts[] = { {"divisor", no_argument, 0, 'd'}, @@ -185,7 +186,9 @@ main(int argc, char * argv[]) { while ((opt = getopt_long(argc, argv, "d:xVh", longopts, NULL)) != -1) switch (opt) { case 'd': - divisor = atoi(optarg); + divisor = + strtol_or_err(optarg, + _("invalid divisor argument")); break; case 'x': xflag = 1; -- cgit v1.2.3-55-g7522