summaryrefslogtreecommitdiffstats
path: root/disk-utils/isosize.c
diff options
context:
space:
mode:
authorSami Kerola2011-06-30 21:27:42 +0200
committerSami Kerola2011-06-30 22:02:10 +0200
commitab3a34ffc9d84f8c16cff29874e46456b26bf00a (patch)
treecd89a6fd794ea00ab71888302f9549395d3c516d /disk-utils/isosize.c
parentisosize: use long options (diff)
downloadkernel-qcow2-util-linux-ab3a34ffc9d84f8c16cff29874e46456b26bf00a.tar.gz
kernel-qcow2-util-linux-ab3a34ffc9d84f8c16cff29874e46456b26bf00a.tar.xz
kernel-qcow2-util-linux-ab3a34ffc9d84f8c16cff29874e46456b26bf00a.zip
isosize: check user input to be numeric
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Diffstat (limited to 'disk-utils/isosize.c')
-rw-r--r--disk-utils/isosize.c9
1 files changed, 6 insertions, 3 deletions
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;