diff --git a/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom.h b/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom.h index d4c851169..421f6c6ea 100644 --- a/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom.h +++ b/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom.h @@ -116,6 +116,7 @@ struct extdom_req { gid_t gid; } posix_gid; } data; + char *err_msg; }; struct extdom_res { diff --git a/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_common.c b/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_common.c index 47bcb179f..c2fd42f13 100644 --- a/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_common.c +++ b/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_common.c @@ -356,6 +356,7 @@ void free_req_data(struct extdom_req *req) break; } + free(req->err_msg); free(req); } diff --git a/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_extop.c b/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_extop.c index dc7785877..708d0e4a2 100644 --- a/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_extop.c +++ b/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_extop.c @@ -149,12 +149,15 @@ static int ipa_extdom_extop(Slapi_PBlock *pb) rc = LDAP_SUCCESS; done: - free_req_data(req); + if (req->err_msg != NULL) { + err_msg = req->err_msg; + } if (err_msg != NULL) { LOG("%s", err_msg); } slapi_send_ldap_result(pb, rc, NULL, err_msg, 0, NULL); ber_bvfree(ret_val); + free_req_data(req); return SLAPI_PLUGIN_EXTENDED_SENT_RESULT; }