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: 9fcdf8f894 ("btrfs-progs: don't write to optarg in btrfs_qgroup_parse_sort_string")
Signed-off-by: Lu Fengqi <lufq.fnst@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
master
Lu Fengqi 2017-10-26 16:32:51 +08:00 committed by David Sterba
parent b84aa6033c
commit c1e92291ee
1 changed files with 3 additions and 3 deletions

View File

@ -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: