diff options
| author | Zhen Ni <zhen.ni@easystack.cn> | 2025-09-23 15:51:04 +0800 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-10-02 13:42:53 +0200 |
| commit | cab278cead49a547ac84c3e185f446f381303eae (patch) | |
| tree | a41c4f7bea2c170514fdc5b33e0f0be48420b5c4 /fs | |
| parent | 58d304a89178d47fbbe47a950b9c2b8123449c41 (diff) | |
| download | linux-cab278cead49a547ac84c3e185f446f381303eae.tar.gz linux-cab278cead49a547ac84c3e185f446f381303eae.tar.bz2 linux-cab278cead49a547ac84c3e185f446f381303eae.zip | |
afs: Fix potential null pointer dereference in afs_put_server
commit 9158c6bb245113d4966df9b2ba602197a379412e upstream.
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs')
| -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 87381c2ffe37..f92ce4b7d73a 100644 --- a/fs/afs/server.c +++ b/fs/afs/server.c @@ -401,13 +401,14 @@ struct afs_server *afs_use_server(struct afs_server *server, enum afs_server_tra 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); |
