]> git.proxmox.com Git - mirror_qemu.git/commitdiff
qemu-io: Handle cvtnum() errors in 'alloc'
authorKevin Wolf <kwolf@redhat.com>
Wed, 5 Jun 2013 12:19:29 +0000 (14:19 +0200)
committerStefan Hajnoczi <stefanha@redhat.com>
Thu, 6 Jun 2013 09:27:03 +0000 (11:27 +0200)
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
qemu-io.c

index 8a719a881cf1b6fe29c69cde63dc0c8dbaf14c7c..b4f56fc59f208fba723ad36302d2d1b828a81934 100644 (file)
--- a/qemu-io.c
+++ b/qemu-io.c
@@ -1596,7 +1596,10 @@ static int alloc_f(int argc, char **argv)
     int ret;
 
     offset = cvtnum(argv[1]);
-    if (offset & 0x1ff) {
+    if (offset < 0) {
+        printf("non-numeric offset argument -- %s\n", argv[1]);
+        return 0;
+    } else if (offset & 0x1ff) {
         printf("offset %" PRId64 " is not sector aligned\n",
                offset);
         return 0;
@@ -1604,6 +1607,10 @@ static int alloc_f(int argc, char **argv)
 
     if (argc == 3) {
         nb_sectors = cvtnum(argv[2]);
+        if (nb_sectors < 0) {
+            printf("non-numeric length argument -- %s\n", argv[2]);
+            return 0;
+        }
     } else {
         nb_sectors = 1;
     }