unix: fix memory leak in uv_interface_addresses

PR-URL: https://github.com/libuv/libuv/pull/537
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
This commit is contained in:
Jianghua Yang 2015-09-22 14:51:38 +08:00 committed by Saúl Ibarra Corretgé
parent 455c4035d4
commit 25c369d4cf
6 changed files with 18 additions and 6 deletions

View File

@ -258,8 +258,10 @@ int uv_interface_addresses(uv_interface_address_t** addresses, int* count) {
}
*addresses = uv__malloc(*count * sizeof(**addresses));
if (!(*addresses))
if (!(*addresses)) {
freeifaddrs(addrs);
return -ENOMEM;
}
address = *addresses;

View File

@ -373,8 +373,10 @@ int uv_interface_addresses(uv_interface_address_t** addresses, int* count) {
}
*addresses = uv__malloc(*count * sizeof(**addresses));
if (!(*addresses))
if (!(*addresses)) {
freeifaddrs(addrs);
return -ENOMEM;
}
address = *addresses;

View File

@ -814,8 +814,10 @@ int uv_interface_addresses(uv_interface_address_t** addresses,
return 0;
*addresses = uv__malloc(*count * sizeof(**addresses));
if (!(*addresses))
if (!(*addresses)) {
freeifaddrs(addrs);
return -ENOMEM;
}
address = *addresses;

View File

@ -298,8 +298,10 @@ int uv_interface_addresses(uv_interface_address_t** addresses, int* count) {
*addresses = uv__malloc(*count * sizeof(**addresses));
if (!(*addresses))
if (!(*addresses)) {
freeifaddrs(addrs);
return -ENOMEM;
}
address = *addresses;

View File

@ -313,8 +313,10 @@ int uv_interface_addresses(uv_interface_address_t** addresses,
*addresses = uv__malloc(*count * sizeof(**addresses));
if (!(*addresses))
if (!(*addresses)) {
freeifaddrs(addrs);
return -ENOMEM;
}
address = *addresses;

View File

@ -693,8 +693,10 @@ int uv_interface_addresses(uv_interface_address_t** addresses, int* count) {
}
*addresses = uv__malloc(*count * sizeof(**addresses));
if (!(*addresses))
if (!(*addresses)) {
freeifaddrs(addrs);
return -ENOMEM;
}
address = *addresses;