cregit-Linux how code gets into the kernel

Release 4.12 include/linux/lsm_audit.h

Directory: include/linux
/*
 * Common LSM logging functions
 * Heavily borrowed from selinux/avc.h
 *
 * Author : Etienne BASSET  <etienne.basset@ensta.org>
 *
 * All credits to : Stephen Smalley, <sds@epoch.ncsc.mil>
 * All BUGS to : Etienne BASSET  <etienne.basset@ensta.org>
 */
#ifndef _LSM_COMMON_LOGGING_

#define _LSM_COMMON_LOGGING_

#include <linux/stddef.h>
#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/kdev_t.h>
#include <linux/spinlock.h>
#include <linux/init.h>
#include <linux/audit.h>
#include <linux/in6.h>
#include <linux/path.h>
#include <linux/key.h>
#include <linux/skbuff.h>


struct lsm_network_audit {
	
int netif;
	
struct sock *sk;
	
u16 family;
	
__be16 dport;
	
__be16 sport;
	union {
		struct {
			
__be32 daddr;
			
__be32 saddr;
		
} v4;
		struct {
			
struct in6_addr daddr;
			
struct in6_addr saddr;
		
} v6;
	
} fam;
};


struct lsm_ioctlop_audit {
	
struct path path;
	
u16 cmd;
};

/* Auxiliary data to use in generating the audit record. */

struct common_audit_data {
	
char type;

#define LSM_AUDIT_DATA_PATH	1

#define LSM_AUDIT_DATA_NET	2

#define LSM_AUDIT_DATA_CAP	3

#define LSM_AUDIT_DATA_IPC	4

#define LSM_AUDIT_DATA_TASK	5

#define LSM_AUDIT_DATA_KEY	6

#define LSM_AUDIT_DATA_NONE	7

#define LSM_AUDIT_DATA_KMOD	8

#define LSM_AUDIT_DATA_INODE	9

#define LSM_AUDIT_DATA_DENTRY	10

#define LSM_AUDIT_DATA_IOCTL_OP	11

#define LSM_AUDIT_DATA_FILE	12
	union 	{
		
struct path path;
		
struct dentry *dentry;
		
struct inode *inode;
		
struct lsm_network_audit *net;
		
int cap;
		
int ipc_id;
		
struct task_struct *tsk;
#ifdef CONFIG_KEYS
		struct {
			
key_serial_t key;
			
char *key_desc;
		
} key_struct;
#endif
		
char *kmod_name;
		
struct lsm_ioctlop_audit *op;
		
struct file *file;
	
} u;
	/* this union contains LSM specific data */
	union {
#ifdef CONFIG_SECURITY_SMACK
		
struct smack_audit_data *smack_audit_data;
#endif
#ifdef CONFIG_SECURITY_SELINUX
		
struct selinux_audit_data *selinux_audit_data;
#endif
#ifdef CONFIG_SECURITY_APPARMOR
		
struct apparmor_audit_data *apparmor_audit_data;
#endif
	}; /* per LSM data pointer union */
};


#define v4info fam.v4

#define v6info fam.v6

int ipv4_skb_to_auditdata(struct sk_buff *skb,
		struct common_audit_data *ad, u8 *proto);

int ipv6_skb_to_auditdata(struct sk_buff *skb,
		struct common_audit_data *ad, u8 *proto);

void common_lsm_audit(struct common_audit_data *a,
	void (*pre_audit)(struct audit_buffer *, void *),
	void (*post_audit)(struct audit_buffer *, void *));

#endif

Overall Contributors

PersonTokensPropCommitsCommitProp
Etienne Basset18252.75%17.14%
Eric Paris8524.64%642.86%
Linus Torvalds288.12%17.14%
Jeff Vander Stoep216.09%17.14%
Thomas Liu144.06%321.43%
Vivek Goyal92.61%17.14%
John Johansen61.74%17.14%
Total345100.00%14100.00%
Directory: include/linux
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.