cregit-Linux how code gets into the kernel

Release 4.14 net/sunrpc/auth_null.c

Directory: net/sunrpc
// SPDX-License-Identifier: GPL-2.0
/*
 * linux/net/sunrpc/auth_null.c
 *
 * AUTH_NULL authentication. Really :-)
 *
 * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de>
 */

#include <linux/types.h>
#include <linux/module.h>
#include <linux/sunrpc/clnt.h>

#if IS_ENABLED(CONFIG_SUNRPC_DEBUG)

# define RPCDBG_FACILITY	RPCDBG_AUTH
#endif


static struct rpc_auth null_auth;

static struct rpc_cred null_cred;


static struct rpc_auth * nul_create(struct rpc_auth_create_args *args, struct rpc_clnt *clnt) { atomic_inc(&null_auth.au_count); return &null_auth; }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)1756.67%125.00%
Trond Myklebust1343.33%375.00%
Total30100.00%4100.00%


static void nul_destroy(struct rpc_auth *auth) { }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)990.00%150.00%
Trond Myklebust110.00%150.00%
Total10100.00%2100.00%

/* * Lookup NULL creds for current process */
static struct rpc_cred * nul_lookup_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags) { if (flags & RPCAUTH_LOOKUP_RCU) return &null_cred; return get_rpccred(&null_cred); }

Contributors

PersonTokensPropCommitsCommitProp
Trond Myklebust2360.53%240.00%
Neil Brown1026.32%120.00%
Linus Torvalds37.89%120.00%
Linus Torvalds (pre-git)25.26%120.00%
Total38100.00%5100.00%

/* * Destroy cred handle. */
static void nul_destroy_cred(struct rpc_cred *cred) { }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)990.00%150.00%
Trond Myklebust110.00%150.00%
Total10100.00%2100.00%

/* * Match cred handle against current process */
static int nul_match(struct auth_cred *acred, struct rpc_cred *cred, int taskflags) { return 1; }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)1777.27%266.67%
Trond Myklebust522.73%133.33%
Total22100.00%3100.00%

/* * Marshal credential. */
static __be32 * nul_marshal(struct rpc_task *task, __be32 *p) { *p++ = htonl(RPC_AUTH_NULL); *p++ = 0; *p++ = htonl(RPC_AUTH_NULL); *p++ = 0; return p; }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)4795.92%150.00%
Alexey Dobriyan24.08%150.00%
Total49100.00%2100.00%

/* * Refresh credential. This is a no-op for AUTH_NULL */
static int nul_refresh(struct rpc_task *task) { set_bit(RPCAUTH_CRED_UPTODATE, &task->tk_rqstp->rq_cred->cr_flags); return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)1450.00%125.00%
Trond Myklebust1450.00%375.00%
Total28100.00%4100.00%


static __be32 * nul_validate(struct rpc_task *task, __be32 *p) { rpc_authflavor_t flavor; u32 size; flavor = ntohl(*p++); if (flavor != RPC_AUTH_NULL) { printk("RPC: bad verf flavor: %u\n", flavor); return ERR_PTR(-EIO); } size = ntohl(*p++); if (size != 0) { printk("RPC: bad verf size: %u\n", size); return ERR_PTR(-EIO); } return p; }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)5765.52%125.00%
Chuck Lever1820.69%125.00%
Andy Adamson1011.49%125.00%
Alexey Dobriyan22.30%125.00%
Total87100.00%4100.00%

const struct rpc_authops authnull_ops = { .owner = THIS_MODULE, .au_flavor = RPC_AUTH_NULL, .au_name = "NULL", .create = nul_create, .destroy = nul_destroy, .lookup_cred = nul_lookup_cred, }; static struct rpc_auth null_auth = { .au_cslack = NUL_CALLSLACK, .au_rslack = NUL_REPLYSLACK, .au_flags = RPCAUTH_AUTH_NO_CRKEY_TIMEOUT, .au_ops = &authnull_ops, .au_flavor = RPC_AUTH_NULL, .au_count = ATOMIC_INIT(0), }; static const struct rpc_credops null_credops = { .cr_name = "AUTH_NULL", .crdestroy = nul_destroy_cred, .crbind = rpcauth_generic_bind_cred, .crmatch = nul_match, .crmarshal = nul_marshal, .crrefresh = nul_refresh, .crvalidate = nul_validate, }; static struct rpc_cred null_cred = { .cr_lru = LIST_HEAD_INIT(null_cred.cr_lru), .cr_auth = &null_auth, .cr_ops = &null_credops, .cr_count = ATOMIC_INIT(1), .cr_flags = 1UL << RPCAUTH_CRED_UPTODATE, };

Overall Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)21044.03%26.67%
Trond Myklebust15632.70%1550.00%
Dave Jones316.50%13.33%
Chuck Lever214.40%26.67%
Linus Torvalds142.94%26.67%
Neil Brown102.10%13.33%
Andy Adamson102.10%13.33%
Christoph Hellwig81.68%13.33%
Jeff Layton61.26%13.33%
Scott Mayhew51.05%13.33%
Alexey Dobriyan40.84%13.33%
Greg Kroah-Hartman10.21%13.33%
Kinglong Mee10.21%13.33%
Total477100.00%30100.00%
Directory: net/sunrpc
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.