From ebb14ed6f57c5504dc2f44339274b108483efd16 Mon Sep 17 00:00:00 2001 From: Thomas Woerner Date: Oct 24 2018 14:23:38 +0000 Subject: 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 --- 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 5863f66..460f96c 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;