]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
rxrpc: Fix a memory leak in rxkad_verify_response()
authorQiushi Wu <wu000273@umn.edu>
Fri, 22 May 2020 18:45:18 +0000 (13:45 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 27 May 2020 15:37:44 +0000 (17:37 +0200)
commit f45d01f4f30b53c3a0a1c6c1c154acb7ff74ab9f upstream.

A ticket was not released after a call of the function
"rxkad_decrypt_ticket" failed. Thus replace the jump target
"temporary_error_free_resp" by "temporary_error_free_ticket".

Fixes: 8c2f826dc3631 ("rxrpc: Don't put crypto buffers on the stack")
Signed-off-by: Qiushi Wu <wu000273@umn.edu>
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Markus Elfring <Markus.Elfring@web.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/rxrpc/rxkad.c

index cea16838d5885af847eb896fc821ad80af26008f..dce7bdc73de41a02d423b8fc4a12561774de16c1 100644 (file)
@@ -1118,7 +1118,7 @@ static int rxkad_verify_response(struct rxrpc_connection *conn,
        ret = rxkad_decrypt_ticket(conn, skb, ticket, ticket_len, &session_key,
                                   &expiry, _abort_code);
        if (ret < 0)
-               goto temporary_error_free_resp;
+               goto temporary_error_free_ticket;
 
        /* use the session key from inside the ticket to decrypt the
         * response */
@@ -1200,7 +1200,6 @@ protocol_error:
 
 temporary_error_free_ticket:
        kfree(ticket);
-temporary_error_free_resp:
        kfree(response);
 temporary_error:
        /* Ignore the response packet if we got a temporary error such as