diff options
author | Trond Myklebust <trondmy@gmail.com> | 2019-04-09 19:13:38 +0300 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2019-04-24 16:46:35 +0300 |
commit | 1237d3545c6715edfd09b94d27585069cd68274c (patch) | |
tree | 7ae78e0288c525c774d21d99083c9780180a934b /net/sunrpc/svc_xprt.c | |
parent | 4df493a260d4c1844437b28009013d5dc408d0df (diff) | |
download | linux-1237d3545c6715edfd09b94d27585069cd68274c.tar.xz |
SUNRPC: Temporary sockets should inherit the cred from their parent
Temporary sockets should inherit the credential (and hence the user
namespace) from the parent listener transport.
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'net/sunrpc/svc_xprt.c')
-rw-r--r-- | net/sunrpc/svc_xprt.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c index b76ee83d4d43..9429b28e9ba0 100644 --- a/net/sunrpc/svc_xprt.c +++ b/net/sunrpc/svc_xprt.c @@ -786,9 +786,10 @@ static int svc_handle_xprt(struct svc_rqst *rqstp, struct svc_xprt *xprt) __module_get(xprt->xpt_class->xcl_owner); svc_check_conn_limits(xprt->xpt_server); newxpt = xprt->xpt_ops->xpo_accept(xprt); - if (newxpt) + if (newxpt) { + newxpt->xpt_cred = get_cred(xprt->xpt_cred); svc_add_new_temp_xprt(serv, newxpt); - else + } else module_put(xprt->xpt_class->xcl_owner); } else if (svc_xprt_reserve_slot(rqstp, xprt)) { /* XPT_DATA|XPT_DEFERRED case: */ |