]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: Log failure before freeing up request
authorAki Tuomi <aki.tuomi@open-xchange.com>
Thu, 7 Jan 2021 12:57:23 +0000 (14:57 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Thu, 14 Jan 2021 09:34:15 +0000 (09:34 +0000)
The request got free'd before logging, causing use-after-free access.

Broken in cec5a9c92d094d639c49bb83eeb9383ebb231c6f

src/auth/auth-request.c

index dc45a4003ffa165b8fafa935fa742076ac72d943..9151807dc64307c56bb08a89a9af4a28f1edb8fc 100644 (file)
@@ -305,8 +305,8 @@ void auth_request_fail(struct auth_request *request)
 
        auth_request_set_state(request, AUTH_REQUEST_STATE_FINISHED);
        auth_request_refresh_last_access(request);
-       auth_request_handler_reply(request, AUTH_CLIENT_RESULT_FAILURE, "", 0);
        auth_request_log_finished(request);
+       auth_request_handler_reply(request, AUTH_CLIENT_RESULT_FAILURE, "", 0);
 }
 
 void auth_request_internal_failure(struct auth_request *request)