summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/config.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/config.c b/src/config.c
index b36afb1..9ae8466 100644
--- a/src/config.c
+++ b/src/config.c
@@ -730,14 +730,15 @@ int config_parse_interface(void *data, size_t len, const char *name, bool overwr
char *astr = malloc(strlen(str) + 1);
char *delim;
int l;
+
if (!astr || !strcpy(astr, str) ||
- (delim = strchr(astr, '/')) == NULL || (*(delim++) == 0) ||
+ (delim = strchr(astr, '/')) == NULL || (*(delim++) = 0) ||
sscanf(delim, "%i", &l) == 0 || l > 128 ||
- inet_pton(AF_INET6, astr, &iface->pio_filter_addr) == 0) {
+ inet_pton(AF_INET6, astr, &iface->pio_filter_addr) == 0)
iface->pio_filter_length = 0;
- } else {
+ else
iface->pio_filter_length = l;
- }
+
if (astr)
free(astr);
}