From: Lu Fengqi Date: Thu, 26 Oct 2017 08:32:51 +0000 (+0800) Subject: btrfs-progs: qgroup: fix qgroup show sort by multi items X-Git-Tag: upstream/4.16.1~300 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c1e92291ee0f4248e5cd2f12dd2d79e16ad9721b;p=platform%2Fupstream%2Fbtrfs-progs.git btrfs-progs: qgroup: fix qgroup show sort by multi items We should not free the string until we don't call strtok any longer. If the string is freed in advance, in fact, the second and subsequent sort items will be ignored. Fixes: 9fcdf8f8945b ("btrfs-progs: don't write to optarg in btrfs_qgroup_parse_sort_string") Signed-off-by: Lu Fengqi Signed-off-by: David Sterba --- diff --git a/qgroup.c b/qgroup.c index fffdbb1..7e8ef07 100644 --- a/qgroup.c +++ b/qgroup.c @@ -1222,7 +1222,8 @@ int btrfs_qgroup_parse_sort_string(const char *opt_arg, if (!opt_tmp) return -ENOMEM; - while ((p = strtok(opt_tmp, ",")) != NULL) { + p = strtok(opt_tmp, ","); + while (p) { flag = 0; ptr_argv = all_sort_items; @@ -1262,8 +1263,7 @@ int btrfs_qgroup_parse_sort_string(const char *opt_arg, } btrfs_qgroup_setup_comparer(comps, what_to_sort, order); } - free(opt_tmp); - opt_tmp = NULL; + p = strtok(NULL, ","); } out: