summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorZhen Ni <zhen.ni@easystack.cn>2025-09-23 15:51:04 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-10-02 13:42:53 +0200
commitcab278cead49a547ac84c3e185f446f381303eae (patch)
treea41c4f7bea2c170514fdc5b33e0f0be48420b5c4 /fs
parent58d304a89178d47fbbe47a950b9c2b8123449c41 (diff)
downloadlinux-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.c3
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);