]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
Replace strdupa call by standard strdup
authorStéphane Graber <stgraber@ubuntu.com>
Wed, 26 Dec 2012 14:47:37 +0000 (15:47 +0100)
committerStéphane Graber <stgraber@ubuntu.com>
Wed, 9 Jan 2013 15:14:20 +0000 (10:14 -0500)
strdupa appears to only exist in the standard glibc but at least not in bionic.
Replace the two strdupa calls we have by a standard strdup.

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

index 940f0a9595c645348817159e0a54466d1e9562b4..6b75b6a77dad2220709d6d5b5b4deec960295bb3 100644 (file)
@@ -580,7 +580,11 @@ static int config_network_ipv4(const char *key, const char *value,
        lxc_list_init(list);
        list->elem = inetdev;
 
-       addr = strdupa(value);
+       addr = strdup(value);
+       if (!addr) {
+               ERROR("no address specified");
+               return -1;
+       }
 
        cursor = strstr(addr, " ");
        if (cursor) {
@@ -594,18 +598,15 @@ static int config_network_ipv4(const char *key, const char *value,
                prefix = slash + 1;
        }
 
-       if (!addr) {
-               ERROR("no address specified");
-               return -1;
-       }
-
        if (!inet_pton(AF_INET, addr, &inetdev->addr)) {
                SYSERROR("invalid ipv4 address: %s", value);
+               free(addr);
                return -1;
        }
 
        if (bcast && !inet_pton(AF_INET, bcast, &inetdev->bcast)) {
                SYSERROR("invalid ipv4 broadcast address: %s", value);
+               free(addr);
                return -1;
        }
 
@@ -624,6 +625,7 @@ static int config_network_ipv4(const char *key, const char *value,
 
        lxc_list_add(&netdev->ipv4, list);
 
+       free(addr);
        return 0;
 }
 
@@ -693,7 +695,12 @@ static int config_network_ipv6(const char *key, const char *value,
        lxc_list_init(list);
        list->elem = inet6dev;
 
-       valdup = strdupa(value);
+       valdup = strdup(value);
+       if (!valdup) {
+               ERROR("no address specified");
+               return -1;
+       }
+
        inet6dev->prefix = 64;
        slash = strstr(valdup, "/");
        if (slash) {
@@ -704,11 +711,13 @@ static int config_network_ipv6(const char *key, const char *value,
 
        if (!inet_pton(AF_INET6, value, &inet6dev->addr)) {
                SYSERROR("invalid ipv6 address: %s", value);
+               free(valdup);
                return -1;
        }
 
        lxc_list_add(&netdev->ipv6, list);
 
+       free(valdup);
        return 0;
 }