Fix rpcbind init after r300941.
- getaddrinfo() sets res = NULL on failure and freeaddrinfo() always dereferences its argument, so we should only free the address list after a successful call. - Address a second potential leak caused by getaddrinfo(AF_INET6) overwriting the address list returned by getaddrinfo(AF_INET). X-MFC-With: r300941
This commit is contained in:
parent
6180f50bbb
commit
5656b5057e
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=300972
@ -338,6 +338,7 @@ network_init(void)
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
memcpy(local_in4, res->ai_addr, sizeof *local_in4);
|
memcpy(local_in4, res->ai_addr, sizeof *local_in4);
|
||||||
|
freeaddrinfo(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef INET6
|
#ifdef INET6
|
||||||
@ -354,6 +355,7 @@ network_init(void)
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
memcpy(local_in6, res->ai_addr, sizeof *local_in6);
|
memcpy(local_in6, res->ai_addr, sizeof *local_in6);
|
||||||
|
freeaddrinfo(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -395,7 +397,6 @@ network_init(void)
|
|||||||
freeifaddrs(ifp);
|
freeifaddrs(ifp);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
freeaddrinfo(res);
|
|
||||||
/* close(s); */
|
/* close(s); */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user