aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2020-02-17 09:48:44 +0100
committerAndreas Schneider <asn@samba.org>2020-02-17 09:50:27 +0100
commit4d7f54d21c8f35d9d370fafad30ada61a9cd83ff (patch)
treec0e11cb1dfbd2722f0b1931b92f9af152fb1a998
parenta47d0a1bda0d9e1b5be974f036278d919c568267 (diff)
downloadnss_wrapper-4d7f54d21c8f35d9d370fafad30ada61a9cd83ff.tar.gz
nss_wrapper-4d7f54d21c8f35d9d370fafad30ada61a9cd83ff.tar.xz
nss_wrapper-4d7f54d21c8f35d9d370fafad30ada61a9cd83ff.zip
nwrap: Fix memory leak on error in nwrap_module_gethostbyname()
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 f3e3af6..921ecde 100644
--- a/src/nss_wrapper.c
+++ b/src/nss_wrapper.c
@@ -4571,11 +4571,15 @@ again:
status = b->fns->_nss_gethostbyname2_r(name, AF_UNSPEC, &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) {