|
|
ecf709 |
From 250777f65dc23917c436d3ecf0fe21abc65db65e Mon Sep 17 00:00:00 2001
|
|
|
ecf709 |
From: =?UTF-8?q?Pavel=20B=C5=99ezina?= <pbrezina@redhat.com>
|
|
|
ecf709 |
Date: Mon, 3 Apr 2017 12:09:44 +0200
|
|
|
ecf709 |
Subject: [PATCH 98/99] ipa_s2n_get_acct_info_send: provide correct req_input
|
|
|
ecf709 |
name
|
|
|
ecf709 |
MIME-Version: 1.0
|
|
|
ecf709 |
Content-Type: text/plain; charset=UTF-8
|
|
|
ecf709 |
Content-Transfer-Encoding: 8bit
|
|
|
ecf709 |
|
|
|
ecf709 |
To avoid crash.
|
|
|
ecf709 |
|
|
|
ecf709 |
Resolves:
|
|
|
ecf709 |
https://pagure.io/SSSD/sssd/issue/3358
|
|
|
ecf709 |
|
|
|
ecf709 |
Reviewed-by: Sumit Bose <sbose@redhat.com>
|
|
|
ecf709 |
Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
|
|
|
ecf709 |
(cherry picked from commit b07bcd8b99590bd404733fa7ff1add37c55126bc)
|
|
|
ecf709 |
---
|
|
|
ecf709 |
src/providers/ipa/ipa_s2n_exop.c | 40 ++++++++++++++++++++++++++++++++++++----
|
|
|
ecf709 |
1 file changed, 36 insertions(+), 4 deletions(-)
|
|
|
ecf709 |
|
|
|
ecf709 |
diff --git a/src/providers/ipa/ipa_s2n_exop.c b/src/providers/ipa/ipa_s2n_exop.c
|
|
|
ecf709 |
index 8a3391b4093f1547d84fe44a0f24b1d063d1e28c..2173db357700499a6140aa61841e443139981483 100644
|
|
|
ecf709 |
--- a/src/providers/ipa/ipa_s2n_exop.c
|
|
|
ecf709 |
+++ b/src/providers/ipa/ipa_s2n_exop.c
|
|
|
ecf709 |
@@ -1054,6 +1054,33 @@ static const char *ipa_s2n_reqtype2str(enum request_types request_type)
|
|
|
ecf709 |
return "Unknown request type";
|
|
|
ecf709 |
}
|
|
|
ecf709 |
|
|
|
ecf709 |
+static const char *ipa_s2n_reqinp2str(TALLOC_CTX *mem_ctx,
|
|
|
ecf709 |
+ struct req_input *req_input)
|
|
|
ecf709 |
+{
|
|
|
ecf709 |
+ const char *str = NULL;
|
|
|
ecf709 |
+
|
|
|
ecf709 |
+ switch (req_input->type) {
|
|
|
ecf709 |
+ case REQ_INP_NAME:
|
|
|
ecf709 |
+ str = talloc_strdup(mem_ctx, req_input->inp.name);
|
|
|
ecf709 |
+ break;
|
|
|
ecf709 |
+ case REQ_INP_SECID:
|
|
|
ecf709 |
+ str = talloc_strdup(mem_ctx, req_input->inp.secid);
|
|
|
ecf709 |
+ break;
|
|
|
ecf709 |
+ case REQ_INP_CERT:
|
|
|
ecf709 |
+ str = talloc_strdup(mem_ctx, req_input->inp.cert);
|
|
|
ecf709 |
+ break;
|
|
|
ecf709 |
+ case REQ_INP_ID:
|
|
|
ecf709 |
+ str = talloc_asprintf(mem_ctx, "%u", req_input->inp.id);
|
|
|
ecf709 |
+ break;
|
|
|
ecf709 |
+ }
|
|
|
ecf709 |
+
|
|
|
ecf709 |
+ if (str == NULL) {
|
|
|
ecf709 |
+ DEBUG(SSSDBG_CRIT_FAILURE, "Out of memory!\n");
|
|
|
ecf709 |
+ }
|
|
|
ecf709 |
+
|
|
|
ecf709 |
+ return str;
|
|
|
ecf709 |
+}
|
|
|
ecf709 |
+
|
|
|
ecf709 |
struct ipa_s2n_get_list_state {
|
|
|
ecf709 |
struct tevent_context *ev;
|
|
|
ecf709 |
struct ipa_id_ctx *ipa_ctx;
|
|
|
ecf709 |
@@ -1410,6 +1437,7 @@ struct tevent_req *ipa_s2n_get_acct_info_send(TALLOC_CTX *mem_ctx,
|
|
|
ecf709 |
struct tevent_req *req;
|
|
|
ecf709 |
struct tevent_req *subreq;
|
|
|
ecf709 |
struct berval *bv_req = NULL;
|
|
|
ecf709 |
+ const char *input;
|
|
|
ecf709 |
int ret = EFAULT;
|
|
|
ecf709 |
bool is_v1 = false;
|
|
|
ecf709 |
|
|
|
ecf709 |
@@ -1454,10 +1482,14 @@ struct tevent_req *ipa_s2n_get_acct_info_send(TALLOC_CTX *mem_ctx,
|
|
|
ecf709 |
goto fail;
|
|
|
ecf709 |
}
|
|
|
ecf709 |
|
|
|
ecf709 |
- DEBUG(SSSDBG_TRACE_FUNC, "Sending request_type: [%s] for trust user [%s] "
|
|
|
ecf709 |
- "to IPA server\n",
|
|
|
ecf709 |
- ipa_s2n_reqtype2str(state->request_type),
|
|
|
ecf709 |
- req_input->inp.name);
|
|
|
ecf709 |
+ if (DEBUG_IS_SET(SSSDBG_TRACE_FUNC)) {
|
|
|
ecf709 |
+ input = ipa_s2n_reqinp2str(state, req_input);
|
|
|
ecf709 |
+ DEBUG(SSSDBG_TRACE_FUNC,
|
|
|
ecf709 |
+ "Sending request_type: [%s] for trust user [%s] to IPA server\n",
|
|
|
ecf709 |
+ ipa_s2n_reqtype2str(state->request_type),
|
|
|
ecf709 |
+ input);
|
|
|
ecf709 |
+ talloc_zfree(input);
|
|
|
ecf709 |
+ }
|
|
|
ecf709 |
|
|
|
ecf709 |
subreq = ipa_s2n_exop_send(state, state->ev, state->sh, is_v1,
|
|
|
ecf709 |
state->exop_timeout, bv_req);
|
|
|
ecf709 |
--
|
|
|
ecf709 |
2.9.3
|
|
|
ecf709 |
|