btrfs-progs: receive: improved error handling in process_snapshot
authorDavid Sterba <dsterba@suse.com>
Tue, 6 Sep 2016 11:08:29 +0000 (13:08 +0200)
committerDavid Sterba <dsterba@suse.com>
Wed, 21 Sep 2016 12:12:38 +0000 (14:12 +0200)
Signed-off-by: David Sterba <dsterba@suse.com>
cmds-receive.c

index f4a3a4f..d0525bf 100644 (file)
@@ -166,8 +166,18 @@ static int process_subvol(const char *path, const u8 *uuid, u64 ctransid,
        if (ret < 0)
                goto out;
 
-       BUG_ON(r->cur_subvol.path);
-       BUG_ON(r->cur_subvol_path[0]);
+       if (r->cur_subvol.path) {
+               error("subvol: another one already started, path ptr: %s",
+                               r->cur_subvol.path);
+               ret = -EINVAL;
+               goto out;
+       }
+       if (r->cur_subvol_path[0]) {
+               error("subvol: another one already started, path buf: %s",
+                               r->cur_subvol.path);
+               ret = -EINVAL;
+               goto out;
+       }
 
        if (*r->dest_dir_path == 0) {
                strncpy_null(r->cur_subvol_path, path);
@@ -224,8 +234,18 @@ static int process_snapshot(const char *path, const u8 *uuid, u64 ctransid,
        if (ret < 0)
                goto out;
 
-       BUG_ON(r->cur_subvol.path);
-       BUG_ON(r->cur_subvol_path[0]);
+       if (r->cur_subvol.path) {
+               error("snapshot: another one already started, path ptr: %s",
+                               r->cur_subvol.path);
+               ret = -EINVAL;
+               goto out;
+       }
+       if (r->cur_subvol_path[0]) {
+               error("snapshot: another one already started, path buf: %s",
+                               r->cur_subvol.path);
+               ret = -EINVAL;
+               goto out;
+       }
 
        if (*r->dest_dir_path == 0) {
                strncpy_null(r->cur_subvol_path, path);