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 <mac...@vivo.com> --- 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