diff options
author | Wang Shilong <wangsl.fnst@cn.fujitsu.com> | 2014-06-19 09:27:05 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.cz> | 2014-08-22 14:43:09 +0200 |
commit | d46111425af47a981145862a5d01d7b5ef5d65e3 (patch) | |
tree | 4a4eb0bc844b0308f29e8e1fce2b73726bd56662 /cmds-restore.c | |
parent | 6d6f2d097e6736f91baf0f0019dcf39eebe3631f (diff) | |
download | btrfs-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.c | 5 |
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; |