]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
sunrpc: return better error in svcauth_gss_accept() on alloc failure
authorJeff Layton <jlayton@kernel.org>
Fri, 20 Jun 2025 12:16:04 +0000 (08:16 -0400)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 14 Jul 2025 16:46:48 +0000 (12:46 -0400)
This ends up returning AUTH_BADCRED when memory allocation fails today.
Fix it to return AUTH_FAILED, which better indicates a failure on the
server.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
net/sunrpc/auth_gss/svcauth_gss.c

index 73a90ad873fb9da659ba76184b2e2a0e5324ce0d..e82212f6b5620b7d9981702aca5f1044f8a79804 100644 (file)
@@ -1628,7 +1628,7 @@ svcauth_gss_accept(struct svc_rqst *rqstp)
        int             ret;
        struct sunrpc_net *sn = net_generic(SVC_NET(rqstp), sunrpc_net_id);
 
-       rqstp->rq_auth_stat = rpc_autherr_badcred;
+       rqstp->rq_auth_stat = rpc_autherr_failed;
        if (!svcdata)
                svcdata = kmalloc(sizeof(*svcdata), GFP_KERNEL);
        if (!svcdata)
@@ -1638,6 +1638,7 @@ svcauth_gss_accept(struct svc_rqst *rqstp)
        svcdata->rsci = NULL;
        gc = &svcdata->clcred;
 
+       rqstp->rq_auth_stat = rpc_autherr_badcred;
        if (!svcauth_gss_decode_credbody(&rqstp->rq_arg_stream, gc, &rpcstart))
                goto auth_err;
        if (gc->gc_v != RPC_GSS_VERSION)