From 71cbd1d6d31a1f061d06bc9ec4c3c8e29c34aea1 Mon Sep 17 00:00:00 2001 From: Simon Pichugin Date: Apr 17 2018 06:34:26 +0000 Subject: Issue 49511 - memory leak in pwdhash Bug description: When we have multiple inputs we leak 1 to N strings allocate. Fix description: We free only one string in the end of main() but if we have a multiple string inputs we should free all of them during the for loop. https://pagure.io/389-ds-base/issue/49511 Reviewed by: mreynolds (Thanks!) --- diff --git a/ldap/servers/slapd/tools/pwenc.c b/ldap/servers/slapd/tools/pwenc.c index 4d3a81a..d92e94e 100644 --- a/ldap/servers/slapd/tools/pwenc.c +++ b/ldap/servers/slapd/tools/pwenc.c @@ -243,6 +243,7 @@ main(int argc, char *argv[]) if ((enc = (*pwsp->pws_enc)(decoded)) == NULL) { perror(name); rc = 1; + slapi_ch_free_string(&decoded); goto out; } @@ -256,12 +257,12 @@ main(int argc, char *argv[]) printf("%s: password does not match.\n", name); } } + slapi_ch_free_string(&decoded); } out: free_pw_scheme(pwsp); - slapi_ch_free_string(&decoded); plugin_closeall(1 /* Close Backends */, 1 /* Close Globals */);