From 8e98c72e5186d099eb4ac0d8b059c4fce64fd739 Mon Sep 17 00:00:00 2001 From: Thomas Woerner Date: Mon, 22 Oct 2018 15:18:23 +0200 Subject: [PATCH] Fix ressource leak in daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_netlogon.c ipa_cldap_netlogon The leak happens due to using strndup in a for loop to create a temporary string without freeing it in all cases. See: https://pagure.io/freeipa/issue/7738 Signed-off-by: Thomas Woerner Reviewed-By: Christian Heimes --- daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_netlogon.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_netlogon.c b/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_netlogon.c index 5863f667e..460f96cd5 100644 --- a/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_netlogon.c +++ b/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_netlogon.c @@ -260,6 +260,10 @@ int ipa_cldap_netlogon(struct ipa_cldap_ctx *ctx, if (req->kvps.pairs[i].value.bv_val[len-1] == '.') { len--; } + if (domain != NULL) { + free(domain); + domain = NULL; + } domain = strndup(req->kvps.pairs[i].value.bv_val, len); if (!domain) { ret = ENOMEM;