summaryrefslogtreecommitdiff
path: root/cmds-restore.c
diff options
context:
space:
mode:
authorWang Shilong <wangsl.fnst@cn.fujitsu.com>2014-06-19 09:27:05 +0800
committerDavid Sterba <dsterba@suse.cz>2014-08-22 14:43:09 +0200
commitd46111425af47a981145862a5d01d7b5ef5d65e3 (patch)
tree4a4eb0bc844b0308f29e8e1fce2b73726bd56662 /cmds-restore.c
parent6d6f2d097e6736f91baf0f0019dcf39eebe3631f (diff)
downloadbtrfs-progs-d46111425af47a981145862a5d01d7b5ef5d65e3.tar.gz
btrfs-progs: restore: check if specified root is fs/file tree firstly
Steps to reproduce: # mkfs.btrfs -f /dev/sda9 # mount /dev/sda9 /mnt # dd if=/dev/zero of=/mnt/data bs=1M count=1 # btrfs restore -r /dev/sda9 -r 2 -o /tmp If users don't input a valid fs/file root objectid, btrfs restore still continue and don't restore anything, this is unfriendly, we could check it firstly. Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.cz>
Diffstat (limited to 'cmds-restore.c')
-rw-r--r--cmds-restore.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/cmds-restore.c b/cmds-restore.c
index 4338493..c84ac17 100644
--- a/cmds-restore.c
+++ b/cmds-restore.c
@@ -1186,6 +1186,11 @@ int cmd_restore(int argc, char **argv)
break;
case 'r':
root_objectid = arg_strtou64(optarg);
+ if (!is_fstree(root_objectid)) {
+ fprintf(stderr, "objectid %llu is not a valid fs/file tree\n",
+ root_objectid);
+ exit(1);
+ }
break;
case 'l':
list_roots = 1;