From: Yunjian Wang Date: Fri, 23 Apr 2021 09:42:58 +0000 (+0800) Subject: SUNRPC: Fix null pointer dereference in svc_rqst_free() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=b9f83ffaa0c096b4c832a43964fe6bff3acffe10;p=linux.git SUNRPC: Fix null pointer dereference in svc_rqst_free() When alloc_pages_node() returns null in svc_rqst_alloc(), the null rq_scratch_page pointer will be dereferenced when calling put_page() in svc_rqst_free(). Fix it by adding a null check. Addresses-Coverity: ("Dereference after null check") Fixes: 5191955d6fc6 ("SUNRPC: Prepare for xdr_stream-style decoding on the server-side") Signed-off-by: Yunjian Wang Signed-off-by: Chuck Lever --- diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c index d76dc9d95d163..0de918cb3d90d 100644 --- a/net/sunrpc/svc.c +++ b/net/sunrpc/svc.c @@ -846,7 +846,8 @@ void svc_rqst_free(struct svc_rqst *rqstp) { svc_release_buffer(rqstp); - put_page(rqstp->rq_scratch_page); + if (rqstp->rq_scratch_page) + put_page(rqstp->rq_scratch_page); kfree(rqstp->rq_resp); kfree(rqstp->rq_argp); kfree(rqstp->rq_auth_data);