diff options
author | Andreas Schneider <asn@samba.org> | 2020-02-17 09:48:44 +0100 |
---|---|---|
committer | Andreas Schneider <asn@samba.org> | 2020-02-17 09:50:27 +0100 |
commit | 4d7f54d21c8f35d9d370fafad30ada61a9cd83ff (patch) | |
tree | c0e11cb1dfbd2722f0b1931b92f9af152fb1a998 | |
parent | a47d0a1bda0d9e1b5be974f036278d919c568267 (diff) | |
download | nss_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.c | 8 |
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) { |