list = malloc(sizeof(*list));
if (!list) {
SYSERROR("failed to allocate memory");
+ free(inetdev);
return -1;
}
addr = strdup(value);
if (!addr) {
ERROR("no address specified");
+ free(inetdev);
+ free(list);
return -1;
}
if (!inet_pton(AF_INET, addr, &inetdev->addr)) {
SYSERROR("invalid ipv4 address: %s", value);
+ free(inetdev);
free(addr);
+ free(list);
return -1;
}
if (bcast && !inet_pton(AF_INET, bcast, &inetdev->bcast)) {
SYSERROR("invalid ipv4 broadcast address: %s", value);
+ free(inetdev);
+ free(list);
free(addr);
return -1;
}
if (!value) {
ERROR("no ipv4 gateway address specified");
+ free(gw);
return -1;
}
} else {
if (!inet_pton(AF_INET, value, gw)) {
SYSERROR("invalid ipv4 gateway address: %s", value);
+ free(gw);
return -1;
}