aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2020-02-17 09:49:54 +0100
committerAndreas Schneider <asn@samba.org>2020-02-17 10:42:41 +0100
commitb8b734e8708072b1e4ce6064dd2d5f8e2e29b4bb (patch)
treea24cac6b3b64144ed2fd2758c25c1c6e1a287f69
parent4d7f54d21c8f35d9d370fafad30ada61a9cd83ff (diff)
downloadnss_wrapper-b8b734e8708072b1e4ce6064dd2d5f8e2e29b4bb.tar.gz
nss_wrapper-b8b734e8708072b1e4ce6064dd2d5f8e2e29b4bb.tar.xz
nss_wrapper-b8b734e8708072b1e4ce6064dd2d5f8e2e29b4bb.zip
nwrap: Fix memory leak on error in nwrap_module_gethostbyname2()
Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Isaac Boukris <iboukris@samba.org>
-rw-r--r--src/nss_wrapper.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/nss_wrapper.c b/src/nss_wrapper.c
index 921ecde..5c4c972 100644
--- a/src/nss_wrapper.c
+++ b/src/nss_wrapper.c
@@ -4617,11 +4617,15 @@ again:
status = b->fns->_nss_gethostbyname2_r(name, af, &he,
buf, buflen, &errno, &h_errno);
if (status == NSS_STATUS_TRYAGAIN) {
+ char *p = NULL;
+
buflen *= 2;
- buf = (char *)realloc(buf, buflen);
- if (buf == NULL) {
+ p = (char *)realloc(buf, buflen);
+ if (p == NULL) {
+ SAFE_FREE(buf);
return NULL;
}
+ buf = p;
goto again;
}
if (status == NSS_STATUS_NOTFOUND) {