btrfs-progs: qgroup limit: error out if input value is negative
authorDongsheng Yang <yangds.fnst@cn.fujitsu.com>
Wed, 3 Jun 2015 09:27:03 +0000 (17:27 +0800)
committerDavid Sterba <dsterba@suse.cz>
Fri, 5 Jun 2015 16:40:32 +0000 (18:40 +0200)
If we pass a negative value to command qgroup limit, btrfs-progs
would convert it to unsigned long long silently. That's a little
confusing to user, why I can limit my quota to a negative value.

This patch add a check in parse_limit, if the input value is negative,
error out to user.

Reported-by: Tsutomu Itoh <t-itoh@jp.fujitsu.com>
Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
cmds-qgroup.c

index 00cc089..5ea4021 100644 (file)
@@ -116,6 +116,10 @@ static int parse_limit(const char *p, unsigned long long *s)
                *s = CLEAR_VALUE;
                return 1;
        }
+
+       if (p[0] == '-')
+               return 0;
+
        size = strtoull(p, &endptr, 10);
        switch (*endptr) {
        case 'T':