]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
Replace a few more str(n)dupa by str(n)dup + free
authorStéphane Graber <stgraber@ubuntu.com>
Fri, 16 Aug 2013 12:57:44 +0000 (14:57 +0200)
committerStéphane Graber <stgraber@ubuntu.com>
Fri, 16 Aug 2013 13:00:41 +0000 (15:00 +0200)
strdup and strndup still don't exist on bionic, so we need to do the
alloc() call ourselves or free the memory by hand.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge Hallyn <serge.hallyn@ubuntu.com>
src/lxc/bdev.c
src/lxc/utils.c

index d6f117631f6a276067823501b0266aa3b29d372e..c96ccfe50db0aed6d35e235caff80f01a0fd0fbe 100644 (file)
@@ -1602,7 +1602,8 @@ static int overlayfs_mount(struct bdev *bdev)
 
        //  separately mount it first
        //  mount -t overlayfs -oupperdir=${upper},lowerdir=${lower} lower dest
-       dup = strdupa(bdev->src);
+       dup = alloca(strlen(bdev->src)+1);
+       strcpy(dup, bdev->src);
        if (!(lower = index(dup, ':')))
                return -22;
        if (!(upper = index(++lower, ':')))
@@ -1770,7 +1771,8 @@ static int overlayfs_create(struct bdev *bdev, const char *dest, const char *n,
                return -1;
        }
 
-       delta = strdupa(dest);
+       delta = alloca(strlen(dest)+1);
+       strcpy(delta, dest);
        strcpy(delta+len-6, "delta0");
 
        if (mkdir_p(delta, 0755) < 0) {
index 9dd742b3f20c314c9bb592db2d00e85a6ac3fcc6..5376c856661feb6fa8c48500afe731f9bac961a6 100644 (file)
@@ -184,13 +184,15 @@ extern int mkdir_p(const char *dir, mode_t mode)
        do {
                dir = tmp + strspn(tmp, "/");
                tmp = dir + strcspn(dir, "/");
-               makeme = strndupa(orig, dir - orig);
+               makeme = strndup(orig, dir - orig);
                if (*makeme) {
                        if (mkdir(makeme, mode) && errno != EEXIST) {
                                SYSERROR("failed to create directory '%s'\n", makeme);
+                               free(makeme);
                                return -1;
                        }
                }
+               free(makeme);
        } while(tmp != dir);
 
        return 0;