]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commitdiff
nfsd: Fix cred ref leak in nfsd_nl_listener_set_doit().
authorKuniyuki Iwashima <kuniyu@google.com>
Sat, 24 Jan 2026 04:18:41 +0000 (04:18 +0000)
committerChuck Lever <chuck.lever@oracle.com>
Sat, 14 Feb 2026 17:50:24 +0000 (12:50 -0500)
nfsd_nl_listener_set_doit() uses get_current_cred() without
put_cred().

As we can see from other callers, svc_xprt_create_from_sa()
does not require the extra refcount.

nfsd_nl_listener_set_doit() is always in the process context,
sendmsg(), and current->cred does not go away.

Let's use current_cred() in nfsd_nl_listener_set_doit().

Fixes: 16a471177496 ("NFSD: add listener-{set,get} netlink command")
Cc: stable@vger.kernel.org
Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfsctl.c

index 43ced6b0e197f74556863685d12617f23ee2b85a..b06adb5d5a2e870e3668abe9a7657f38d3eabea5 100644 (file)
@@ -2000,7 +2000,7 @@ int nfsd_nl_listener_set_doit(struct sk_buff *skb, struct genl_info *info)
                }
 
                ret = svc_xprt_create_from_sa(serv, xcl_name, net, sa, 0,
-                                             get_current_cred());
+                                             current_cred());
                /* always save the latest error */
                if (ret < 0)
                        err = ret;