Unverified Commit 9158c6bb authored by Zhen Ni's avatar Zhen Ni Committed by Christian Brauner
Browse files

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: 2757a4dc ("afs: Fix access after dec in put functions")
Cc: stable@vger.kernel.org
Signed-off-by: default avatarZhen Ni <zhen.ni@easystack.cn>
Acked-by: default avatarDavid Howells <dhowells@redhat.com>
Reviewed-by: default avatarJeffrey Altman <jaltman@auristor.com>
Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
parent 66d938e8
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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);