mirror of
https://github.com/hardkernel/linux.git
synced 2026-03-24 19:40:21 +09:00
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: 2757a4dc18 ("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>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
58d304a891
commit
cab278cead
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user