diff options
author | Zhen Ni <zhen.ni@easystack.cn> | 2025-09-23 15:51:04 +0800 |
---|---|---|
committer | Christian Brauner <brauner@kernel.org> | 2025-09-25 09:18:17 +0200 |
commit | 9158c6bb245113d4966df9b2ba602197a379412e (patch) | |
tree | 42c3adc764cfd70f0b9e1b7efdaf59faf8d66c18 | |
parent | 66d938e89e940e512f4c3deac938ecef399c13f9 (diff) |
afs: Fix potential null pointer dereference in afs_put_server
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>
-rw-r--r-- | fs/afs/server.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/afs/server.c b/fs/afs/server.c index a97562f831eb..c4428ebddb1d 100644 --- a/fs/afs/server.c +++ b/fs/afs/server.c @@ -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); |