ldap/servers/slapd/add.c | 5 +++--
ldap/servers/slapd/pblock.c | 7 +++----
2 files changed, 6 insertions(+), 6 deletions(-)
New commits:
commit aa76f6b79db14c03c74b7c064f33a37bba991bf5
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Thu Mar 19 15:29:39 2015 -0700
Ticket #48135 - memory leak in new_passwdPolicy (1.2.11 only)
Description: Backporting #47900 patch introduced a leak. The patch
has a dependency on #147, which was not backported to 1.2.11 branch.
This patch releases the pwdpolicy object in op_shared_add every time.
Also, moving new_passwdPolicy only where it is needed.
https://fedorahosted.org/389/ticket/48135
Reviewed by rmeggins(a)redhat.com (Thank you, Rich!!)
diff --git a/ldap/servers/slapd/add.c b/ldap/servers/slapd/add.c
index e03bc6c..f52f766 100644
--- a/ldap/servers/slapd/add.c
+++ b/ldap/servers/slapd/add.c
@@ -457,14 +457,13 @@ static void op_shared_add (Slapi_PBlock *pb)
int proxy_err = LDAP_SUCCESS;
char *errtext = NULL;
Slapi_DN *sdn = NULL;
- passwdPolicy *pwpolicy;
+ passwdPolicy *pwpolicy = NULL;
slapi_pblock_get (pb, SLAPI_OPERATION, &operation);
slapi_pblock_get (pb, SLAPI_ADD_ENTRY, &e);
slapi_pblock_get (pb, SLAPI_IS_REPLICATED_OPERATION, &repl_op);
slapi_pblock_get (pb, SLAPI_IS_LEGACY_REPLICATED_OPERATION, &legacy_op);
internal_op= operation_is_flag_set(operation, OP_FLAG_INTERNAL);
- pwpolicy = new_passwdPolicy(pb, slapi_entry_get_dn(e));
/* target spec is used to decide which plugins are applicable for the operation */
operation_set_target_spec (operation, slapi_entry_get_sdn (e));
@@ -561,6 +560,7 @@ static void op_shared_add (Slapi_PBlock *pb)
}
/* check password syntax */
+ pwpolicy = new_passwdPolicy(pb, slapi_entry_get_dn(e));
if (!pw_is_pwp_admin(pb, pwpolicy) &&
check_pw_syntax(pb, slapi_entry_get_sdn_const(e), present_values, NULL, e, 0) !=
0)
{
@@ -745,6 +745,7 @@ static void op_shared_add (Slapi_PBlock *pb)
done:
if (be)
slapi_be_Unlock(be);
+ delete_passwdPolicy(&pwpolicy);
slapi_pblock_get(pb, SLAPI_ENTRY_POST_OP, &pse);
slapi_entry_free(pse);
slapi_ch_free((void **)&operation->o_params.p.p_add.parentuniqueid);
commit d19a1910446bc90ee474f6419ef8e229c27f8a5f
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Thu Mar 19 14:37:03 2015 -0700
Revert "Ticket #48135 - memory leak in new_passwdPolicy (1.2.11 only)"
This reverts commit fd44ab1697fa58c5f078063770fadc37657386a5.
diff --git a/ldap/servers/slapd/pblock.c b/ldap/servers/slapd/pblock.c
index 9131f40..849c20e 100644
--- a/ldap/servers/slapd/pblock.c
+++ b/ldap/servers/slapd/pblock.c
@@ -111,11 +111,10 @@ pblock_done( Slapi_PBlock *pb )
{
if(pb->pb_op!=NULL)
{
- operation_free(&pb->pb_op,pb->pb_conn);
+ operation_free(&pb->pb_op,pb->pb_conn);
}
- delete_passwdPolicy(&pb->pwdpolicy);
- slapi_ch_free((void**)&(pb->pb_vattr_context));
- slapi_ch_free((void**)&(pb->pb_result_text));
+ slapi_ch_free((void**)&(pb->pb_vattr_context));
+ slapi_ch_free((void**)&(pb->pb_result_text));
}
void