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;