diff --git a/src/unix/linux-core.c b/src/unix/linux-core.c index 9c9a2be6..a2145b0f 100644 --- a/src/unix/linux-core.c +++ b/src/unix/linux-core.c @@ -754,6 +754,7 @@ int uv_interface_addresses(uv_interface_address_t** addresses, return -errno; *count = 0; + *addresses = NULL; /* Count the number of interfaces */ for (ent = addrs; ent != NULL; ent = ent->ifa_next) { @@ -766,6 +767,9 @@ int uv_interface_addresses(uv_interface_address_t** addresses, (*count)++; } + if (*count == 0) + return 0; + *addresses = malloc(*count * sizeof(**addresses)); if (!(*addresses)) return -ENOMEM;