]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-oauth2: Use http client destroy callback
authorAki Tuomi <aki.tuomi@dovecot.fi>
Tue, 7 Mar 2017 08:08:08 +0000 (10:08 +0200)
committerAki Tuomi <aki.tuomi@dovecot.fi>
Tue, 7 Mar 2017 08:08:08 +0000 (10:08 +0200)
Avoids freeing memory early.

Fixes signal 11 crash in auth

src/lib-oauth2/oauth2-introspect.c
src/lib-oauth2/oauth2-refresh.c
src/lib-oauth2/oauth2-token-validate.c

index f3bd70489d93243c20c2e6e6d2a10562c7d12a82..e0da0f892eb04339afb89b96e03d10166c8b4fca 100644 (file)
@@ -19,7 +19,6 @@ oauth2_introspection_callback(struct oauth2_request *req,
        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 @@ oauth2_introspection_start(const struct oauth2_settings *set,
 
        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;
index 531e1b2ca2af736814688436d61009f4a8d2e62f..77a3a84c02bd6dc63fead68bd4ffbebcd58a63db 100644 (file)
@@ -19,7 +19,6 @@ oauth2_refresh_callback(struct oauth2_request *req,
        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 @@ oauth2_refresh_start(const struct oauth2_settings *set,
        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;
index abcc8bbdebeedbbfc821d1d984c005bfc388d3bf..958d7461b2d846bcb4e5023b6fd1fd0bbd840204 100644 (file)
@@ -20,7 +20,6 @@ oauth2_token_validation_callback(struct oauth2_request *req,
        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 @@ oauth2_token_validation_start(const struct oauth2_settings *set,
 
        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;