diff options
author | cjihrig <cjihrig@gmail.com> | 2018-11-12 23:59:52 -0500 |
---|---|---|
committer | cjihrig <cjihrig@gmail.com> | 2018-11-15 14:52:55 -0500 |
commit | 9cef7b84b1f6b1e116afaad945f31b368e8917e2 (patch) | |
tree | 333273bbf34a23e65deea4a85d009b75f2f77e4d /deps/uv/src/unix/linux-core.c | |
parent | 1ddcccb7e379089ac47b87d772343e16fd84c1c8 (diff) | |
download | android-node-v8-9cef7b84b1f6b1e116afaad945f31b368e8917e2.tar.gz android-node-v8-9cef7b84b1f6b1e116afaad945f31b368e8917e2.tar.bz2 android-node-v8-9cef7b84b1f6b1e116afaad945f31b368e8917e2.zip |
deps: upgrade to libuv 1.24.0
PR-URL: https://github.com/nodejs/node/pull/24332
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Diffstat (limited to 'deps/uv/src/unix/linux-core.c')
-rw-r--r-- | deps/uv/src/unix/linux-core.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/deps/uv/src/unix/linux-core.c b/deps/uv/src/unix/linux-core.c index 75362eb76d..991d1c60ae 100644 --- a/deps/uv/src/unix/linux-core.c +++ b/deps/uv/src/unix/linux-core.c @@ -826,9 +826,10 @@ static int uv__ifaddr_exclude(struct ifaddrs *ent, int exclude_type) { return !exclude_type; } -int uv_interface_addresses(uv_interface_address_t** addresses, - int* count) { +int uv_interface_addresses(uv_interface_address_t** addresses, int* count) { #ifndef HAVE_IFADDRS_H + *count = 0; + *addresses = NULL; return UV_ENOSYS; #else struct ifaddrs *addrs, *ent; @@ -836,12 +837,12 @@ int uv_interface_addresses(uv_interface_address_t** addresses, int i; struct sockaddr_ll *sll; - if (getifaddrs(&addrs)) - return UV__ERR(errno); - *count = 0; *addresses = NULL; + if (getifaddrs(&addrs)) + return UV__ERR(errno); + /* Count the number of interfaces */ for (ent = addrs; ent != NULL; ent = ent->ifa_next) { if (uv__ifaddr_exclude(ent, UV__EXCLUDE_IFADDR)) @@ -850,8 +851,10 @@ int uv_interface_addresses(uv_interface_address_t** addresses, (*count)++; } - if (*count == 0) + if (*count == 0) { + freeifaddrs(addrs); return 0; + } *addresses = uv__malloc(*count * sizeof(**addresses)); if (!(*addresses)) { @@ -890,12 +893,13 @@ int uv_interface_addresses(uv_interface_address_t** addresses, continue; address = *addresses; - memset(address->phys_addr, 0, sizeof(address->phys_addr)); for (i = 0; i < (*count); i++) { if (strcmp(address->name, ent->ifa_name) == 0) { sll = (struct sockaddr_ll*)ent->ifa_addr; memcpy(address->phys_addr, sll->sll_addr, sizeof(address->phys_addr)); + } else { + memset(address->phys_addr, 0, sizeof(address->phys_addr)); } address++; } |