btrfs-progs: initialize pipefd[] for error path
authorEric Sandeen <sandeen@redhat.com>
Wed, 30 Jan 2013 07:11:46 +0000 (01:11 -0600)
committerZach Brown <zab@redhat.com>
Wed, 6 Feb 2013 00:09:41 +0000 (16:09 -0800)
Several goto out; paths will end up doing i.e.

        if (pipefd[0])
                close(pipefd[0]);

but we get there with uninitialized values in many cases.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
cmds-send.c

index 69e9bcea511cb3be21fb6f9f64adb3a51ad2414d..b2a340e0a33c63e68d710e18e5151573fcaec501 100644 (file)
@@ -245,7 +245,7 @@ static int do_send(struct btrfs_send *send, u64 root_id, u64 parent_root_id)
        struct subvol_info *si;
        void *t_err = NULL;
        int subvol_fd = -1;
-       int pipefd[2];
+       int pipefd[2] = {-1, -1};
 
        si = subvol_uuid_search(&send->sus, root_id, NULL, 0, NULL,
                        subvol_search_by_root_id);
@@ -327,9 +327,9 @@ static int do_send(struct btrfs_send *send, u64 root_id, u64 parent_root_id)
 out:
        if (subvol_fd != -1)
                close(subvol_fd);
-       if (pipefd[0])
+       if (pipefd[0] != -1)
                close(pipefd[0]);
-       if (pipefd[1])
+       if (pipefd[1] != -1)
                close(pipefd[1]);
        return ret;
 }