[PATCH v1] fs:dlm:Fix NULL pointer dereference bug in accept_from_sock()

From: Wang Ming
Date: Tue Jul 04 2023 - 06:56:16 EST


newcon -> sock is NULL but dereferenced.
First check newcon. Whether sock is a null pointer.
If so, the subsequent operations are skipped.
If it is not empty, perform subsequent operations.

Signed-off-by: Wang Ming <machel@xxxxxxxx>
---
fs/dlm/lowcomms.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
index 9f14ea9f6..ea18b9478 100644
--- a/fs/dlm/lowcomms.c
+++ b/fs/dlm/lowcomms.c
@@ -1081,9 +1081,12 @@ static int accept_from_sock(void)
add_sock(newsock, newcon);

/* check if we receved something while adding */
- lock_sock(newcon->sock->sk);
- lowcomms_queue_rwork(newcon);
- release_sock(newcon->sock->sk);
+ if (newcon->sock) {
+ lock_sock(newcon->sock->sk);
+ lowcomms_queue_rwork(newcon);
+ release_sock(newcon->sock->sk);
+ }
+
}
up_write(&newcon->sock_lock);
srcu_read_unlock(&connections_srcu, idx);
--
2.25.1