Mercurial > dovecot > core-2.2
changeset 21716:8afc52576667
lib-oauth2: Use http client destroy callback
Avoids freeing memory early.
Fixes signal 11 crash in auth
author | Aki Tuomi <aki.tuomi@dovecot.fi> |
---|---|
date | Tue, 07 Mar 2017 10:08:08 +0200 |
parents | 465fc64557c2 |
children | 1085fea7435f |
files | src/lib-oauth2/oauth2-introspect.c src/lib-oauth2/oauth2-refresh.c src/lib-oauth2/oauth2-token-validate.c |
diffstat | 3 files changed, 3 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-oauth2/oauth2-introspect.c Mon Mar 06 13:16:12 2017 +0200 +++ b/src/lib-oauth2/oauth2-introspect.c Tue Mar 07 10:08:08 2017 +0200 @@ -19,7 +19,6 @@ oauth2_introspection_callback_t *callback = req->is_callback; req->is_callback = NULL; callback(res, req->is_context); - oauth2_request_free_internal(req); } static void @@ -122,6 +121,7 @@ http_client_request_set_timeout_msecs(req->req, req->set->timeout_msecs); + http_client_request_set_destroy_callback(req->req, oauth2_request_free_internal, req); http_client_request_submit(req->req); return req;
--- a/src/lib-oauth2/oauth2-refresh.c Mon Mar 06 13:16:12 2017 +0200 +++ b/src/lib-oauth2/oauth2-refresh.c Tue Mar 07 10:08:08 2017 +0200 @@ -19,7 +19,6 @@ oauth2_refresh_callback_t *callback = req->re_callback; req->re_callback = NULL; callback(res, req->re_context); - oauth2_request_free_internal(req); } static bool @@ -153,6 +152,7 @@ i_stream_unref(&is); http_client_request_set_timeout_msecs(req->req, req->set->timeout_msecs); + http_client_request_set_destroy_callback(req->req, oauth2_request_free_internal, req); http_client_request_submit(req->req); return req;
--- a/src/lib-oauth2/oauth2-token-validate.c Mon Mar 06 13:16:12 2017 +0200 +++ b/src/lib-oauth2/oauth2-token-validate.c Tue Mar 07 10:08:08 2017 +0200 @@ -20,7 +20,6 @@ oauth2_token_validation_callback_t *callback = req->tv_callback; req->tv_callback = NULL; callback(res, req->tv_context); - oauth2_request_free_internal(req); } static void @@ -136,6 +135,7 @@ http_client_request_set_timeout_msecs(req->req, req->set->timeout_msecs); + http_client_request_set_destroy_callback(req->req, oauth2_request_free_internal, req); http_client_request_submit(req->req); return req;