cregit-Linux how code gets into the kernel

Release 4.15 security/smack/smack_netfilter.c

Directory: security/smack
/*
 *  Simplified MAC Kernel (smack) security module
 *
 *  This file contains the Smack netfilter implementation
 *
 *  Author:
 *      Casey Schaufler <casey@schaufler-ca.com>
 *
 *  Copyright (C) 2014 Casey Schaufler <casey@schaufler-ca.com>
 *  Copyright (C) 2014 Intel Corporation.
 *
 *      This program is free software; you can redistribute it and/or modify
 *      it under the terms of the GNU General Public License version 2,
 *      as published by the Free Software Foundation.
 */

#include <linux/netfilter_ipv4.h>
#include <linux/netfilter_ipv6.h>
#include <linux/netdevice.h>
#include <net/inet_sock.h>
#include <net/net_namespace.h>
#include "smack.h"

#if IS_ENABLED(CONFIG_IPV6)


static unsigned int smack_ipv6_output(void *priv, struct sk_buff *skb, const struct nf_hook_state *state) { struct sock *sk = skb_to_full_sk(skb); struct socket_smack *ssp; struct smack_known *skp; if (sk && sk->sk_security) { ssp = sk->sk_security; skp = ssp->smk_out; skb->secmark = skp->smk_secid; } return NF_ACCEPT; }

Contributors

PersonTokensPropCommitsCommitProp
Casey Schaufler6181.33%125.00%
Eric Dumazet1013.33%125.00%
Eric W. Biedermann22.67%125.00%
David S. Miller22.67%125.00%
Total75100.00%4100.00%

#endif /* IPV6 */
static unsigned int smack_ipv4_output(void *priv, struct sk_buff *skb, const struct nf_hook_state *state) { struct sock *sk = skb_to_full_sk(skb); struct socket_smack *ssp; struct smack_known *skp; if (sk && sk->sk_security) { ssp = sk->sk_security; skp = ssp->smk_out; skb->secmark = skp->smk_secid; } return NF_ACCEPT; }

Contributors

PersonTokensPropCommitsCommitProp
Casey Schaufler6181.33%125.00%
Eric Dumazet1013.33%125.00%
Eric W. Biedermann22.67%125.00%
David S. Miller22.67%125.00%
Total75100.00%4100.00%

static const struct nf_hook_ops smack_nf_ops[] = { { .hook = smack_ipv4_output, .pf = NFPROTO_IPV4, .hooknum = NF_INET_LOCAL_OUT, .priority = NF_IP_PRI_SELINUX_FIRST, }, #if IS_ENABLED(CONFIG_IPV6) { .hook = smack_ipv6_output, .pf = NFPROTO_IPV6, .hooknum = NF_INET_LOCAL_OUT, .priority = NF_IP6_PRI_SELINUX_FIRST, }, #endif /* IPV6 */ };
static int __net_init smack_nf_register(struct net *net) { return nf_register_net_hooks(net, smack_nf_ops, ARRAY_SIZE(smack_nf_ops)); }

Contributors

PersonTokensPropCommitsCommitProp
Florian Westphal25100.00%1100.00%
Total25100.00%1100.00%


static void __net_exit smack_nf_unregister(struct net *net) { nf_unregister_net_hooks(net, smack_nf_ops, ARRAY_SIZE(smack_nf_ops)); }

Contributors

PersonTokensPropCommitsCommitProp
Florian Westphal24100.00%1100.00%
Total24100.00%1100.00%

static struct pernet_operations smack_net_ops = { .init = smack_nf_register, .exit = smack_nf_unregister, };
static int __init smack_nf_ip_init(void) { if (smack_enabled == 0) return 0; printk(KERN_DEBUG "Smack: Registering netfilter hooks\n"); return register_pernet_subsys(&smack_net_ops); }

Contributors

PersonTokensPropCommitsCommitProp
Casey Schaufler2787.10%150.00%
Florian Westphal412.90%150.00%
Total31100.00%2100.00%

__initcall(smack_nf_ip_init);

Overall Contributors

PersonTokensPropCommitsCommitProp
Casey Schaufler23668.80%114.29%
Florian Westphal7421.57%228.57%
Eric Dumazet236.71%114.29%
Eric W. Biedermann41.17%114.29%
David S. Miller41.17%114.29%
Javier Martinez Canillas20.58%114.29%
Total343100.00%7100.00%
Directory: security/smack
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.