]> www.infradead.org Git - users/willy/pagecache.git/commitdiff
nfsd: fix __fh_verify for localio
authorOlga Kornievskaia <okorniev@redhat.com>
Tue, 28 Jan 2025 16:58:06 +0000 (11:58 -0500)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 10 Feb 2025 18:31:11 +0000 (13:31 -0500)
__fh_verify() added a call to svc_xprt_set_valid() to help do connection
management but during LOCALIO path rqstp argument is NULL, leading to
NULL pointer dereferencing and a crash.

Fixes: eccbbc7c00a5 ("nfsd: don't use sv_nrthreads in connection limiting calculations.")
Signed-off-by: Olga Kornievskaia <okorniev@redhat.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfsfh.c

index bf59f83c6224e61026e7d46d40b7661b91968893..91bf0e6d58950d661884f2f929030fc7748f678c 100644 (file)
@@ -381,8 +381,9 @@ __fh_verify(struct svc_rqst *rqstp,
        error = check_nfsd_access(exp, rqstp, may_bypass_gss);
        if (error)
                goto out;
-
-       svc_xprt_set_valid(rqstp->rq_xprt);
+       /* During LOCALIO call to fh_verify will be called with a NULL rqstp */
+       if (rqstp)
+               svc_xprt_set_valid(rqstp->rq_xprt);
 
        /* Finally, check access permissions. */
        error = nfsd_permission(cred, exp, dentry, access);