summaryrefslogtreecommitdiff
path: root/auth
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2017-05-11 13:25:26 +0200
committerAndrew Bartlett <abartlet@samba.org>2017-05-21 21:05:11 +0200
commit9e3b27d35cca992d92735d0019a5524ef9b5b293 (patch)
tree3741a85fd449ff81b92ca157657ec3df2d72a4b8 /auth
parenta5f37e6cca68358d6ae077977ee6b690981a7cd9 (diff)
downloadsamba-9e3b27d35cca992d92735d0019a5524ef9b5b293.tar.gz
auth/gensec: avoid using a state->subreq pointer
Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'auth')
-rw-r--r--auth/gensec/gensec.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/auth/gensec/gensec.c b/auth/gensec/gensec.c
index df4ac4e53f1..b37f560c0da 100644
--- a/auth/gensec/gensec.c
+++ b/auth/gensec/gensec.c
@@ -398,12 +398,11 @@ _PUBLIC_ NTSTATUS gensec_update(struct gensec_security *gensec_security,
struct gensec_update_state {
const struct gensec_security_ops *ops;
- struct tevent_req *subreq;
struct gensec_security *gensec_security;
DATA_BLOB out;
};
-static void gensec_update_subreq_done(struct tevent_req *subreq);
+static void gensec_update_done(struct tevent_req *subreq);
/**
* Next state function for the GENSEC state machine async version
@@ -421,8 +420,9 @@ _PUBLIC_ struct tevent_req *gensec_update_send(TALLOC_CTX *mem_ctx,
struct gensec_security *gensec_security,
const DATA_BLOB in)
{
- struct tevent_req *req;
+ struct tevent_req *req = NULL;
struct gensec_update_state *state = NULL;
+ struct tevent_req *subreq = NULL;
req = tevent_req_create(mem_ctx, &state,
struct gensec_update_state);
@@ -438,19 +438,16 @@ _PUBLIC_ struct tevent_req *gensec_update_send(TALLOC_CTX *mem_ctx,
return tevent_req_post(req, ev);
}
- state->subreq = state->ops->update_send(state, ev, gensec_security, in);
- if (tevent_req_nomem(state->subreq, req)) {
+ subreq = state->ops->update_send(state, ev, gensec_security, in);
+ if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
-
- tevent_req_set_callback(state->subreq,
- gensec_update_subreq_done,
- req);
+ tevent_req_set_callback(subreq, gensec_update_done, req);
return req;
}
-static void gensec_update_subreq_done(struct tevent_req *subreq)
+static void gensec_update_done(struct tevent_req *subreq)
{
struct tevent_req *req =
tevent_req_callback_data(subreq,
@@ -460,8 +457,6 @@ static void gensec_update_subreq_done(struct tevent_req *subreq)
struct gensec_update_state);
NTSTATUS status;
- state->subreq = NULL;
-
status = state->ops->update_recv(subreq, state, &state->out);
TALLOC_FREE(subreq);
if (tevent_req_nterror(req, status)) {