diff options
author | Andreas Schneider <asn@samba.org> | 2020-02-17 09:49:54 +0100 |
---|---|---|
committer | Andreas Schneider <asn@samba.org> | 2020-02-17 10:42:41 +0100 |
commit | b8b734e8708072b1e4ce6064dd2d5f8e2e29b4bb (patch) | |
tree | a24cac6b3b64144ed2fd2758c25c1c6e1a287f69 | |
parent | 4d7f54d21c8f35d9d370fafad30ada61a9cd83ff (diff) | |
download | nss_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.c | 8 |
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) { |