diff options
author | Stefan Metzmacher <metze@samba.org> | 2017-05-11 13:25:26 +0200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2017-05-21 21:05:11 +0200 |
commit | 9e3b27d35cca992d92735d0019a5524ef9b5b293 (patch) | |
tree | 3741a85fd449ff81b92ca157657ec3df2d72a4b8 /auth | |
parent | a5f37e6cca68358d6ae077977ee6b690981a7cd9 (diff) | |
download | samba-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.c | 19 |
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)) { |