]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
afs: Fix potential null pointer dereference in afs_put_server
authorZhen Ni <zhen.ni@easystack.cn>
Tue, 23 Sep 2025 07:51:04 +0000 (15:51 +0800)
committerChristian Brauner <brauner@kernel.org>
Thu, 25 Sep 2025 07:18:17 +0000 (09:18 +0200)
afs_put_server() accessed server->debug_id before the NULL check, which
could lead to a null pointer dereference. Move the debug_id assignment,
ensuring we never dereference a NULL server pointer.

Fixes: 2757a4dc1849 ("afs: Fix access after dec in put functions")
Cc: stable@vger.kernel.org
Signed-off-by: Zhen Ni <zhen.ni@easystack.cn>
Acked-by: David Howells <dhowells@redhat.com>
Reviewed-by: Jeffrey Altman <jaltman@auristor.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/afs/server.c

index a97562f831eb5a4aac14cb5b1b1cb00112ea777c..c4428ebddb1da6dc63a656e05340c5ded0bd7666 100644 (file)
@@ -331,13 +331,14 @@ struct afs_server *afs_use_server(struct afs_server *server, bool activate,
 void afs_put_server(struct afs_net *net, struct afs_server *server,
                    enum afs_server_trace reason)
 {
-       unsigned int a, debug_id = server->debug_id;
+       unsigned int a, debug_id;
        bool zero;
        int r;
 
        if (!server)
                return;
 
+       debug_id = server->debug_id;
        a = atomic_read(&server->active);
        zero = __refcount_dec_and_test(&server->ref, &r);
        trace_afs_server(debug_id, r - 1, a, reason);