]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
storage: prevent unitialized variable warning 2937/head
authorChristian Brauner <christian.brauner@ubuntu.com>
Sun, 14 Apr 2019 13:46:12 +0000 (15:46 +0200)
committerChristian Brauner <christian.brauner@ubuntu.com>
Sun, 14 Apr 2019 13:46:12 +0000 (15:46 +0200)
We can simply fix this issue by switching to our cleanup macros instead of
manually freeing the memory.

Closes #2912.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/storage/btrfs.c

index d46ed0a53d49231f479560e5227493d4061d67d8..f16acc4cbb5bc1b6ea864f8b46ff4fe57a887c00 100644 (file)
@@ -41,6 +41,7 @@
 #include "btrfs.h"
 #include "config.h"
 #include "log.h"
+#include "memory_utils.h"
 #include "rsync.h"
 #include "storage.h"
 #include "utils.h"
@@ -763,7 +764,6 @@ static int btrfs_recursive_destroy(const char *path)
        int ret, e, i;
        unsigned long off = 0;
        u16 name_len;
-       char *tmppath;
        u64 dir_id;
 
        fd = open(path, O_RDONLY);
@@ -834,7 +834,8 @@ static int btrfs_recursive_destroy(const char *path)
                         * name of the child subvol in question.
                         */
                        if (sh.objectid != root_id && sh.type == BTRFS_ROOT_BACKREF_KEY) {
-                               char *name, *tmp;
+                               __do_free char *name = NULL, *tmppath = NULL;
+                               char *tmp;
 
                                ref = (struct btrfs_root_ref *)(args.buf + off);
                                name_len = btrfs_stack_root_ref_name_len(ref);
@@ -844,7 +845,6 @@ static int btrfs_recursive_destroy(const char *path)
                                if (!name) {
                                        ERROR("Out of memory");
                                        free_btrfs_tree(tree);
-                                       free(tmppath);
                                        close(fd);
                                }
 
@@ -859,14 +859,9 @@ static int btrfs_recursive_destroy(const char *path)
                                                        name_len, tmppath)) {
                                        ERROR("Out of memory");
                                        free_btrfs_tree(tree);
-                                       free(name);
-                                       free(tmppath);
                                        close(fd);
                                        return -1;
                                }
-
-                               free(tmppath);
-                               free(name);
                        }
 
                        off += sh.len;