[lxc-devel] [PATCH 16/21] Replace strdupa call by standard strdup
Stéphane Graber
stgraber at ubuntu.com
Thu Jan 3 17:24:17 UTC 2013
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 at ubuntu.com>
---
src/lxc/confile.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/lxc/confile.c b/src/lxc/confile.c
index 940f0a9..2737822 100644
--- a/src/lxc/confile.c
+++ b/src/lxc/confile.c
@@ -580,7 +580,7 @@ static int config_network_ipv4(const char *key, const char *value,
lxc_list_init(list);
list->elem = inetdev;
- addr = strdupa(value);
+ addr = strdup(value);
cursor = strstr(addr, " ");
if (cursor) {
@@ -601,11 +601,13 @@ static int config_network_ipv4(const char *key, const char *value,
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 +626,7 @@ static int config_network_ipv4(const char *key, const char *value,
lxc_list_add(&netdev->ipv4, list);
+ free(addr);
return 0;
}
@@ -693,7 +696,7 @@ static int config_network_ipv6(const char *key, const char *value,
lxc_list_init(list);
list->elem = inet6dev;
- valdup = strdupa(value);
+ valdup = strdup(value);
inet6dev->prefix = 64;
slash = strstr(valdup, "/");
if (slash) {
@@ -702,13 +705,20 @@ static int config_network_ipv6(const char *key, const char *value,
inet6dev->prefix = atoi(netmask);
}
+ if (!valdup) {
+ ERROR("no address specified");
+ return -1;
+ }
+
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;
}
--
1.8.0
More information about the lxc-devel
mailing list