Release 4.7 include/linux/audit.h
/* audit.h -- Auditing support
*
* Copyright 2003-2004 Red Hat Inc., Durham, North Carolina.
* All Rights Reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Written by Rickard E. (Rik) Faith <faith@redhat.com>
*
*/
#ifndef _LINUX_AUDIT_H_
#define _LINUX_AUDIT_H_
#include <linux/sched.h>
#include <linux/ptrace.h>
#include <uapi/linux/audit.h>
#define AUDIT_INO_UNSET ((unsigned long)-1)
#define AUDIT_DEV_UNSET ((dev_t)-1)
struct audit_sig_info {
uid_t uid;
pid_t pid;
char ctx[0];
};
struct audit_buffer;
struct audit_context;
struct inode;
struct netlink_skb_parms;
struct path;
struct linux_binprm;
struct mq_attr;
struct mqstat;
struct audit_watch;
struct audit_tree;
struct sk_buff;
struct audit_krule {
u32 pflags;
u32 flags;
u32 listnr;
u32 action;
u32 mask[AUDIT_BITMASK_SIZE];
u32 buflen; /* for data alloc on list rules */
u32 field_count;
char *filterkey; /* ties events to rules */
struct audit_field *fields;
struct audit_field *arch_f; /* quick access to arch field */
struct audit_field *inode_f; /* quick access to an inode field */
struct audit_watch *watch; /* associated watch */
struct audit_tree *tree; /* associated watched tree */
struct audit_fsnotify_mark *exe;
struct list_head rlist; /* entry in audit_{watch,tree}.rules list */
struct list_head list; /* for AUDIT_LIST* purposes only */
u64 prio;
};
/* Flag to indicate legacy AUDIT_LOGINUID unset usage */
#define AUDIT_LOGINUID_LEGACY 0x1
struct audit_field {
u32 type;
union {
u32 val;
kuid_t uid;
kgid_t gid;
struct {
char *lsm_str;
void *lsm_rule;
};
};
u32 op;
};
extern int is_audit_feature_set(int which);
extern int __init audit_register_class(int class, unsigned *list);
extern int audit_classify_syscall(int abi, unsigned syscall);
extern int audit_classify_arch(int arch);
/* only for compat system calls */
extern unsigned compat_write_class[];
extern unsigned compat_read_class[];
extern unsigned compat_dir_class[];
extern unsigned compat_chattr_class[];
extern unsigned compat_signal_class[];
extern int audit_classify_compat_syscall(int abi, unsigned syscall);
/* audit_names->type values */
#define AUDIT_TYPE_UNKNOWN 0
/* we don't know yet */
#define AUDIT_TYPE_NORMAL 1
/* a "normal" audit record */
#define AUDIT_TYPE_PARENT 2
/* a parent audit record */
#define AUDIT_TYPE_CHILD_DELETE 3
/* a child being deleted */
#define AUDIT_TYPE_CHILD_CREATE 4
/* a child being created */
/* maximized args number that audit_socketcall can process */
#define AUDITSC_ARGS 6
/* bit values for ->signal->audit_tty */
#define AUDIT_TTY_ENABLE BIT(0)
#define AUDIT_TTY_LOG_PASSWD BIT(1)
struct filename;
extern void audit_log_session_info(struct audit_buffer *ab);
#ifdef CONFIG_AUDIT
/* These are defined in audit.c */
/* Public API */
extern __printf(4, 5)
void audit_log(struct audit_context *ctx, gfp_t gfp_mask, int type,
const char *fmt, ...);
extern struct audit_buffer *audit_log_start(struct audit_context *ctx, gfp_t gfp_mask, int type);
extern __printf(2, 3)
void audit_log_format(struct audit_buffer *ab, const char *fmt, ...);
extern void audit_log_end(struct audit_buffer *ab);
extern bool audit_string_contains_control(const char *string,
size_t len);
extern void audit_log_n_hex(struct audit_buffer *ab,
const unsigned char *buf,
size_t len);
extern void audit_log_n_string(struct audit_buffer *ab,
const char *buf,
size_t n);
extern void audit_log_n_untrustedstring(struct audit_buffer *ab,
const char *string,
size_t n);
extern void audit_log_untrustedstring(struct audit_buffer *ab,
const char *string);
extern void audit_log_d_path(struct audit_buffer *ab,
const char *prefix,
const struct path *path);
extern void audit_log_key(struct audit_buffer *ab,
char *key);
extern void audit_log_link_denied(const char *operation,
struct path *link);
extern void audit_log_lost(const char *message);
#ifdef CONFIG_SECURITY
extern void audit_log_secctx(struct audit_buffer *ab, u32 secid);
#else
static inline void audit_log_secctx(struct audit_buffer *ab, u32 secid)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
eric paris | eric paris | 7 | 50.00% | 1 | 50.00% |
paul moore | paul moore | 7 | 50.00% | 1 | 50.00% |
| Total | 14 | 100.00% | 2 | 100.00% |
#endif
extern int audit_log_task_context(struct audit_buffer *ab);
extern void audit_log_task_info(struct audit_buffer *ab,
struct task_struct *tsk);
extern int audit_update_lsm_rules(void);
/* Private API (for audit.c only) */
extern int audit_filter_user(int type);
extern int audit_filter_type(int type);
extern int audit_rule_change(int type, __u32 portid, int seq,
void *data, size_t datasz);
extern int audit_list_rules_send(struct sk_buff *request_skb, int seq);
extern u32 audit_enabled;
#else /* CONFIG_AUDIT */
static inline __printf(4, 5)
void audit_log(struct audit_context *ctx, gfp_t gfp_mask, int type,
const char *fmt, ...)
{ }
static inline struct audit_buffer *audit_log_start(struct audit_context *ctx,
gfp_t gfp_mask, int type)
{
return NULL;
}
static inline __printf(2, 3)
void audit_log_format(struct audit_buffer *ab, const char *fmt, ...)
{ }
static inline void audit_log_end(struct audit_buffer *ab)
{ }
static inline void audit_log_n_hex(struct audit_buffer *ab,
const unsigned char *buf, size_t len)
{ }
static inline void audit_log_n_string(struct audit_buffer *ab,
const char *buf, size_t n)
{ }
static inline void audit_log_n_untrustedstring(struct audit_buffer *ab,
const char *string, size_t n)
{ }
static inline void audit_log_untrustedstring(struct audit_buffer *ab,
const char *string)
{ }
static inline void audit_log_d_path(struct audit_buffer *ab,
const char *prefix,
const struct path *path)
{ }
static inline void audit_log_key(struct audit_buffer *ab, char *key)
{ }
static inline void audit_log_link_denied(const char *string,
const struct path *link)
{ }
static inline void audit_log_secctx(struct audit_buffer *ab, u32 secid)
{ }
static inline int audit_log_task_context(struct audit_buffer *ab)
{
return 0;
}
static inline void audit_log_task_info(struct audit_buffer *ab,
struct task_struct *tsk)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 8 | 50.00% | 1 | 33.33% |
andrew morton | andrew morton | 7 | 43.75% | 1 | 33.33% |
david woodhouse | david woodhouse | 1 | 6.25% | 1 | 33.33% |
| Total | 16 | 100.00% | 3 | 100.00% |
#define audit_enabled 0
#endif /* CONFIG_AUDIT */
#ifdef CONFIG_AUDIT_COMPAT_GENERIC
#define audit_is_compat(arch) (!((arch) & __AUDIT_ARCH_64BIT))
#else
#define audit_is_compat(arch) false
#endif
#ifdef CONFIG_AUDITSYSCALL
#include <asm/syscall.h> /* for syscall_get_arch() */
/* These are defined in auditsc.c */
/* Public API */
extern int audit_alloc(struct task_struct *task);
extern void __audit_free(struct task_struct *task);
extern void __audit_syscall_entry(int major, unsigned long a0, unsigned long a1,
unsigned long a2, unsigned long a3);
extern void __audit_syscall_exit(int ret_success, long ret_value);
extern struct filename *__audit_reusename(const __user char *uptr);
extern void __audit_getname(struct filename *name);
#define AUDIT_INODE_PARENT 1
/* dentry represents the parent */
#define AUDIT_INODE_HIDDEN 2
/* audit record should be hidden */
extern void __audit_inode(struct filename *name, const struct dentry *dentry,
unsigned int flags);
extern void __audit_file(const struct file *);
extern void __audit_inode_child(struct inode *parent,
const struct dentry *dentry,
const unsigned char type);
extern void __audit_seccomp(unsigned long syscall, long signr, int code);
extern void __audit_ptrace(struct task_struct *t);
static inline bool audit_dummy_context(void)
{
void *p = current->audit_context;
return !p || *(int *)p;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 21 | 75.00% | 1 | 33.33% |
al viro | al viro | 7 | 25.00% | 2 | 66.67% |
| Total | 28 | 100.00% | 3 | 100.00% |
static inline void audit_free(struct task_struct *task)
{
if (unlikely(task->audit_context))
__audit_free(task);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
al viro | al viro | 16 | 61.54% | 2 | 66.67% |
paul moore | paul moore | 10 | 38.46% | 1 | 33.33% |
| Total | 26 | 100.00% | 3 | 100.00% |
static inline void audit_syscall_entry(int major, unsigned long a0,
unsigned long a1, unsigned long a2,
unsigned long a3)
{
if (unlikely(current->audit_context))
__audit_syscall_entry(major, a0, a1, a2, a3);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 24 | 50.00% | 1 | 33.33% |
al viro | al viro | 24 | 50.00% | 2 | 66.67% |
| Total | 48 | 100.00% | 3 | 100.00% |
static inline void audit_syscall_exit(void *pt_regs)
{
if (unlikely(current->audit_context)) {
int success = is_syscall_success(pt_regs);
long return_code = regs_return_value(pt_regs);
__audit_syscall_exit(success, return_code);
}
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 23 | 51.11% | 1 | 33.33% |
eric paris | eric paris | 21 | 46.67% | 1 | 33.33% |
richard guy briggs | richard guy briggs | 1 | 2.22% | 1 | 33.33% |
| Total | 45 | 100.00% | 3 | 100.00% |
static inline struct filename *audit_reusename(const __user char *name)
{
if (unlikely(!audit_dummy_context()))
return __audit_reusename(name);
return NULL;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
eric paris | eric paris | 22 | 66.67% | 1 | 50.00% |
paul moore | paul moore | 11 | 33.33% | 1 | 50.00% |
| Total | 33 | 100.00% | 2 | 100.00% |
static inline void audit_getname(struct filename *name)
{
if (unlikely(!audit_dummy_context()))
__audit_getname(name);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
george c. wilson | george c. wilson | 16 | 61.54% | 1 | 25.00% |
al viro | al viro | 5 | 19.23% | 2 | 50.00% |
paul moore | paul moore | 5 | 19.23% | 1 | 25.00% |
| Total | 26 | 100.00% | 4 | 100.00% |
static inline void audit_inode(struct filename *name,
const struct dentry *dentry,
unsigned int parent) {
if (unlikely(!audit_dummy_context())) {
unsigned int flags = 0;
if (parent)
flags |= AUDIT_INODE_PARENT;
__audit_inode(name, dentry, flags);
}
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 31 | 55.36% | 1 | 25.00% |
george c. wilson | george c. wilson | 20 | 35.71% | 1 | 25.00% |
al viro | al viro | 5 | 8.93% | 2 | 50.00% |
| Total | 56 | 100.00% | 4 | 100.00% |
static inline void audit_file(struct file *file)
{
if (unlikely(!audit_dummy_context()))
__audit_file(file);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
george c. wilson | george c. wilson | 16 | 61.54% | 1 | 25.00% |
paul moore | paul moore | 5 | 19.23% | 1 | 25.00% |
al viro | al viro | 5 | 19.23% | 2 | 50.00% |
| Total | 26 | 100.00% | 4 | 100.00% |
static inline void audit_inode_parent_hidden(struct filename *name,
const struct dentry *dentry)
{
if (unlikely(!audit_dummy_context()))
__audit_inode(name, dentry,
AUDIT_INODE_PARENT | AUDIT_INODE_HIDDEN);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
george c. wilson | george c. wilson | 18 | 47.37% | 1 | 25.00% |
paul moore | paul moore | 15 | 39.47% | 1 | 25.00% |
al viro | al viro | 5 | 13.16% | 2 | 50.00% |
| Total | 38 | 100.00% | 4 | 100.00% |
static inline void audit_inode_child(struct inode *parent,
const struct dentry *dentry,
const unsigned char type) {
if (unlikely(!audit_dummy_context()))
__audit_inode_child(parent, dentry, type);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
eric paris | eric paris | 24 | 58.54% | 1 | 33.33% |
paul moore | paul moore | 14 | 34.15% | 1 | 33.33% |
david howells | david howells | 3 | 7.32% | 1 | 33.33% |
| Total | 41 | 100.00% | 3 | 100.00% |
void audit_core_dumps(long signr);
static inline void audit_seccomp(unsigned long syscall, long signr, int code)
{
if (!audit_enabled)
return;
/* Force a record to be reported if a signal was delivered. */
if (signr || unlikely(!audit_dummy_context()))
__audit_seccomp(syscall, signr, code);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 23 | 52.27% | 1 | 33.33% |
eric paris | eric paris | 19 | 43.18% | 1 | 33.33% |
al viro | al viro | 2 | 4.55% | 1 | 33.33% |
| Total | 44 | 100.00% | 3 | 100.00% |
static inline void audit_ptrace(struct task_struct *t)
{
if (unlikely(!audit_dummy_context()))
__audit_ptrace(t);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
al viro | al viro | 19 | 73.08% | 1 | 50.00% |
paul moore | paul moore | 7 | 26.92% | 1 | 50.00% |
| Total | 26 | 100.00% | 2 | 100.00% |
/* Private API (for audit.c only) */
extern unsigned int audit_serial(void);
extern int auditsc_get_stamp(struct audit_context *ctx,
struct timespec *t, unsigned int *serial);
extern int audit_set_loginuid(kuid_t loginuid);
static inline kuid_t audit_get_loginuid(struct task_struct *tsk)
{
return tsk->loginuid;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 9 | 52.94% | 1 | 50.00% |
kees cook | kees cook | 8 | 47.06% | 1 | 50.00% |
| Total | 17 | 100.00% | 2 | 100.00% |
static inline unsigned int audit_get_sessionid(struct task_struct *tsk)
{
return tsk->sessionid;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 9 | 50.00% | 1 | 50.00% |
jeff layton | jeff layton | 9 | 50.00% | 1 | 50.00% |
| Total | 18 | 100.00% | 2 | 100.00% |
extern void __audit_ipc_obj(struct kern_ipc_perm *ipcp);
extern void __audit_ipc_set_perm(unsigned long qbytes, uid_t uid, gid_t gid, umode_t mode);
extern void __audit_bprm(struct linux_binprm *bprm);
extern int __audit_socketcall(int nargs, unsigned long *args);
extern int __audit_sockaddr(int len, void *addr);
extern void __audit_fd_pair(int fd1, int fd2);
extern void __audit_mq_open(int oflag, umode_t mode, struct mq_attr *attr);
extern void __audit_mq_sendrecv(mqd_t mqdes, size_t msg_len, unsigned int msg_prio, const struct timespec *abs_timeout);
extern void __audit_mq_notify(mqd_t mqdes, const struct sigevent *notification);
extern void __audit_mq_getsetattr(mqd_t mqdes, struct mq_attr *mqstat);
extern int __audit_log_bprm_fcaps(struct linux_binprm *bprm,
const struct cred *new,
const struct cred *old);
extern void __audit_log_capset(const struct cred *new, const struct cred *old);
extern void __audit_mmap_fd(int fd, int flags);
static inline void audit_ipc_obj(struct kern_ipc_perm *ipcp)
{
if (unlikely(!audit_dummy_context()))
__audit_ipc_obj(ipcp);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 18 | 69.23% | 1 | 33.33% |
kees cook | kees cook | 6 | 23.08% | 1 | 33.33% |
chris wright | chris wright | 2 | 7.69% | 1 | 33.33% |
| Total | 26 | 100.00% | 3 | 100.00% |
static inline void audit_fd_pair(int fd1, int fd2)
{
if (unlikely(!audit_dummy_context()))
__audit_fd_pair(fd1, fd2);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 22 | 75.86% | 1 | 25.00% |
kees cook | kees cook | 5 | 17.24% | 1 | 25.00% |
serge hallyn | serge hallyn | 1 | 3.45% | 1 | 25.00% |
eric paris | eric paris | 1 | 3.45% | 1 | 25.00% |
| Total | 29 | 100.00% | 4 | 100.00% |
static inline void audit_ipc_set_perm(unsigned long qbytes, uid_t uid, gid_t gid, umode_t mode)
{
if (unlikely(!audit_dummy_context()))
__audit_ipc_set_perm(qbytes, uid, gid, mode);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 22 | 55.00% | 1 | 25.00% |
kees cook | kees cook | 12 | 30.00% | 1 | 25.00% |
david woodhouse | david woodhouse | 5 | 12.50% | 1 | 25.00% |
steve grubb | steve grubb | 1 | 2.50% | 1 | 25.00% |
| Total | 40 | 100.00% | 4 | 100.00% |
static inline void audit_bprm(struct linux_binprm *bprm)
{
if (unlikely(!audit_dummy_context()))
__audit_bprm(bprm);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 16 | 61.54% | 1 | 20.00% |
kees cook | kees cook | 6 | 23.08% | 1 | 20.00% |
al viro | al viro | 2 | 7.69% | 1 | 20.00% |
david woodhouse | david woodhouse | 1 | 3.85% | 1 | 20.00% |
richard guy briggs | richard guy briggs | 1 | 3.85% | 1 | 20.00% |
| Total | 26 | 100.00% | 5 | 100.00% |
static inline int audit_socketcall(int nargs, unsigned long *args)
{
if (unlikely(!audit_dummy_context()))
return __audit_socketcall(nargs, args);
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 19 | 54.29% | 1 | 25.00% |
kees cook | kees cook | 8 | 22.86% | 1 | 25.00% |
chen gang | chen gang | 5 | 14.29% | 1 | 25.00% |
david woodhouse | david woodhouse | 3 | 8.57% | 1 | 25.00% |
| Total | 35 | 100.00% | 4 | 100.00% |
static inline int audit_sockaddr(int len, void *addr)
{
if (unlikely(!audit_dummy_context()))
return __audit_sockaddr(len, addr);
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 17 | 50.00% | 1 | 33.33% |
kees cook | kees cook | 11 | 32.35% | 1 | 33.33% |
david woodhouse | david woodhouse | 6 | 17.65% | 1 | 33.33% |
| Total | 34 | 100.00% | 3 | 100.00% |
static inline void audit_mq_open(int oflag, umode_t mode, struct mq_attr *attr)
{
if (unlikely(!audit_dummy_context()))
__audit_mq_open(oflag, mode, attr);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 20 | 55.56% | 1 | 33.33% |
kees cook | kees cook | 11 | 30.56% | 1 | 33.33% |
george c. wilson | george c. wilson | 5 | 13.89% | 1 | 33.33% |
| Total | 36 | 100.00% | 3 | 100.00% |
static inline void audit_mq_sendrecv(mqd_t mqdes, size_t msg_len, unsigned int msg_prio, const struct timespec *abs_timeout)
{
if (unlikely(!audit_dummy_context()))
__audit_mq_sendrecv(mqdes, msg_len, msg_prio, abs_timeout);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 22 | 51.16% | 1 | 20.00% |
kees cook | kees cook | 15 | 34.88% | 1 | 20.00% |
george c. wilson | george c. wilson | 4 | 9.30% | 1 | 20.00% |
dustin kirkland | dustin kirkland | 1 | 2.33% | 1 | 20.00% |
al viro | al viro | 1 | 2.33% | 1 | 20.00% |
| Total | 43 | 100.00% | 5 | 100.00% |
static inline void audit_mq_notify(mqd_t mqdes, const struct sigevent *notification)
{
if (unlikely(!audit_dummy_context()))
__audit_mq_notify(mqdes, notification);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 18 | 56.25% | 1 | 25.00% |
kees cook | kees cook | 10 | 31.25% | 1 | 25.00% |
george c. wilson | george c. wilson | 3 | 9.38% | 1 | 25.00% |
dustin kirkland | dustin kirkland | 1 | 3.12% | 1 | 25.00% |
| Total | 32 | 100.00% | 4 | 100.00% |
static inline void audit_mq_getsetattr(mqd_t mqdes, struct mq_attr *mqstat)
{
if (unlikely(!audit_dummy_context()))
__audit_mq_getsetattr(mqdes, mqstat);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 18 | 58.06% | 1 | 33.33% |
kees cook | kees cook | 9 | 29.03% | 1 | 33.33% |
george c. wilson | george c. wilson | 4 | 12.90% | 1 | 33.33% |
| Total | 31 | 100.00% | 3 | 100.00% |
static inline int audit_log_bprm_fcaps(struct linux_binprm *bprm,
const struct cred *new,
const struct cred *old)
{
if (unlikely(!audit_dummy_context()))
return __audit_log_bprm_fcaps(bprm, new, old);
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 46 | 100.00% | 1 | 100.00% |
| Total | 46 | 100.00% | 1 | 100.00% |
static inline void audit_log_capset(const struct cred *new,
const struct cred *old)
{
if (unlikely(!audit_dummy_context()))
__audit_log_capset(new, old);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 35 | 100.00% | 1 | 100.00% |
| Total | 35 | 100.00% | 1 | 100.00% |
static inline void audit_mmap_fd(int fd, int flags)
{
if (unlikely(!audit_dummy_context()))
__audit_mmap_fd(fd, flags);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 29 | 100.00% | 1 | 100.00% |
| Total | 29 | 100.00% | 1 | 100.00% |
extern int audit_n_rules;
extern int audit_signals;
#else /* CONFIG_AUDITSYSCALL */
static inline int audit_alloc(struct task_struct *task)
{
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
kees cook | kees cook | 10 | 66.67% | 1 | 33.33% |
paul moore | paul moore | 3 | 20.00% | 1 | 33.33% |
eric paris | eric paris | 2 | 13.33% | 1 | 33.33% |
| Total | 15 | 100.00% | 3 | 100.00% |
static inline void audit_free(struct task_struct *task)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
kees cook | kees cook | 6 | 54.55% | 1 | 33.33% |
paul moore | paul moore | 3 | 27.27% | 1 | 33.33% |
eric paris | eric paris | 2 | 18.18% | 1 | 33.33% |
| Total | 11 | 100.00% | 3 | 100.00% |
static inline void audit_syscall_entry(int major, unsigned long a0,
unsigned long a1, unsigned long a2,
unsigned long a3)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 17 | 68.00% | 1 | 33.33% |
kees cook | kees cook | 5 | 20.00% | 1 | 33.33% |
al viro | al viro | 3 | 12.00% | 1 | 33.33% |
| Total | 25 | 100.00% | 3 | 100.00% |
static inline void audit_syscall_exit(void *pt_regs)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
kees cook | kees cook | 5 | 50.00% | 1 | 33.33% |
paul moore | paul moore | 3 | 30.00% | 1 | 33.33% |
al viro | al viro | 2 | 20.00% | 1 | 33.33% |
| Total | 10 | 100.00% | 3 | 100.00% |
static inline bool audit_dummy_context(void)
{
return true;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
eric w. biederman | eric w. biederman | 9 | 75.00% | 1 | 50.00% |
paul moore | paul moore | 3 | 25.00% | 1 | 50.00% |
| Total | 12 | 100.00% | 2 | 100.00% |
static inline struct filename *audit_reusename(const __user char *name)
{
return NULL;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 13 | 72.22% | 1 | 25.00% |
al viro | al viro | 3 | 16.67% | 1 | 25.00% |
eric paris | eric paris | 2 | 11.11% | 2 | 50.00% |
| Total | 18 | 100.00% | 4 | 100.00% |
static inline void audit_getname(struct filename *name)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 6 | 54.55% | 1 | 33.33% |
david woodhouse | david woodhouse | 4 | 36.36% | 1 | 33.33% |
eric paris | eric paris | 1 | 9.09% | 1 | 33.33% |
| Total | 11 | 100.00% | 3 | 100.00% |
static inline void __audit_inode(struct filename *name,
const struct dentry *dentry,
unsigned int flags)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 13 | 61.90% | 1 | 33.33% |
amy griffis | amy griffis | 7 | 33.33% | 1 | 33.33% |
eric paris | eric paris | 1 | 4.76% | 1 | 33.33% |
| Total | 21 | 100.00% | 3 | 100.00% |
static inline void __audit_inode_child(struct inode *parent,
const struct dentry *dentry,
const unsigned char type)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 12 | 54.55% | 1 | 25.00% |
andrew morton | andrew morton | 8 | 36.36% | 1 | 25.00% |
david woodhouse | david woodhouse | 1 | 4.55% | 1 | 25.00% |
al viro | al viro | 1 | 4.55% | 1 | 25.00% |
| Total | 22 | 100.00% | 4 | 100.00% |
static inline void audit_inode(struct filename *name,
const struct dentry *dentry,
unsigned int parent)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 12 | 57.14% | 1 | 25.00% |
eric paris | eric paris | 4 | 19.05% | 1 | 25.00% |
miloslav trmac | miloslav trmac | 3 | 14.29% | 1 | 25.00% |
kees cook | kees cook | 2 | 9.52% | 1 | 25.00% |
| Total | 21 | 100.00% | 4 | 100.00% |
static inline void audit_file(struct file *file)
{
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 6 | 54.55% | 1 | 50.00% |
mr dash four | mr dash four | 5 | 45.45% | 1 | 50.00% |
| Total | 11 | 100.00% | 2 | 100.00% |
static inline void audit_inode_parent_hidden(struct filename *name,
const struct dentry *dentry)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 7 | 41.18% | 1 | 25.00% |
kees cook | kees cook | 5 | 29.41% | 1 | 25.00% |
eric paris | eric paris | 3 | 17.65% | 1 | 25.00% |
mr dash four | mr dash four | 2 | 11.76% | 1 | 25.00% |
| Total | 17 | 100.00% | 4 | 100.00% |
static inline void audit_inode_child(struct inode *parent,
const struct dentry *dentry,
const unsigned char type)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 13 | 59.09% | 1 | 25.00% |
eric paris | eric paris | 8 | 36.36% | 2 | 50.00% |
andrew morton | andrew morton | 1 | 4.55% | 1 | 25.00% |
| Total | 22 | 100.00% | 4 | 100.00% |
static inline void audit_core_dumps(long signr)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 7 | 77.78% | 1 | 50.00% |
andrew morton | andrew morton | 2 | 22.22% | 1 | 50.00% |
| Total | 9 | 100.00% | 2 | 100.00% |
static inline void __audit_seccomp(unsigned long syscall, long signr, int code)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 12 | 75.00% | 1 | 33.33% |
david woodhouse | david woodhouse | 3 | 18.75% | 1 | 33.33% |
dustin kirkland | dustin kirkland | 1 | 6.25% | 1 | 33.33% |
| Total | 16 | 100.00% | 3 | 100.00% |
static inline void audit_seccomp(unsigned long syscall, long signr, int code)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 13 | 81.25% | 1 | 33.33% |
david woodhouse | david woodhouse | 2 | 12.50% | 1 | 33.33% |
dustin kirkland | dustin kirkland | 1 | 6.25% | 1 | 33.33% |
| Total | 16 | 100.00% | 3 | 100.00% |
static inline int auditsc_get_stamp(struct audit_context *ctx,
struct timespec *t, unsigned int *serial)
{
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 18 | 72.00% | 1 | 33.33% |
richard guy briggs | richard guy briggs | 5 | 20.00% | 1 | 33.33% |
eric w. biederman | eric w. biederman | 2 | 8.00% | 1 | 33.33% |
| Total | 25 | 100.00% | 3 | 100.00% |
static inline kuid_t audit_get_loginuid(struct task_struct *tsk)
{
return INVALID_UID;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 13 | 86.67% | 1 | 50.00% |
kees cook | kees cook | 2 | 13.33% | 1 | 50.00% |
| Total | 15 | 100.00% | 2 | 100.00% |
static inline unsigned int audit_get_sessionid(struct task_struct *tsk)
{
return -1;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 11 | 64.71% | 1 | 50.00% |
kees cook | kees cook | 6 | 35.29% | 1 | 50.00% |
| Total | 17 | 100.00% | 2 | 100.00% |
static inline void audit_ipc_obj(struct kern_ipc_perm *ipcp)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 7 | 63.64% | 1 | 50.00% |
kees cook | kees cook | 4 | 36.36% | 1 | 50.00% |
| Total | 11 | 100.00% | 2 | 100.00% |
static inline void audit_ipc_set_perm(unsigned long qbytes, uid_t uid,
gid_t gid, umode_t mode)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 15 | 78.95% | 1 | 50.00% |
kees cook | kees cook | 4 | 21.05% | 1 | 50.00% |
| Total | 19 | 100.00% | 2 | 100.00% |
static inline void audit_bprm(struct linux_binprm *bprm)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 7 | 63.64% | 1 | 50.00% |
kees cook | kees cook | 4 | 36.36% | 1 | 50.00% |
| Total | 11 | 100.00% | 2 | 100.00% |
static inline int audit_socketcall(int nargs, unsigned long *args)
{
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 16 | 88.89% | 1 | 50.00% |
kees cook | kees cook | 2 | 11.11% | 1 | 50.00% |
| Total | 18 | 100.00% | 2 | 100.00% |
static inline void audit_fd_pair(int fd1, int fd2)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 8 | 66.67% | 1 | 50.00% |
kees cook | kees cook | 4 | 33.33% | 1 | 50.00% |
| Total | 12 | 100.00% | 2 | 100.00% |
static inline int audit_sockaddr(int len, void *addr)
{
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 14 | 82.35% | 1 | 50.00% |
kees cook | kees cook | 3 | 17.65% | 1 | 50.00% |
| Total | 17 | 100.00% | 2 | 100.00% |
static inline void audit_mq_open(int oflag, umode_t mode, struct mq_attr *attr)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 13 | 76.47% | 1 | 50.00% |
kees cook | kees cook | 4 | 23.53% | 1 | 50.00% |
| Total | 17 | 100.00% | 2 | 100.00% |
static inline void audit_mq_sendrecv(mqd_t mqdes, size_t msg_len,
unsigned int msg_prio,
const struct timespec *abs_timeout)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 18 | 81.82% | 1 | 50.00% |
kees cook | kees cook | 4 | 18.18% | 1 | 50.00% |
| Total | 22 | 100.00% | 2 | 100.00% |
static inline void audit_mq_notify(mqd_t mqdes,
const struct sigevent *notification)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 11 | 73.33% | 1 | 50.00% |
kees cook | kees cook | 4 | 26.67% | 1 | 50.00% |
| Total | 15 | 100.00% | 2 | 100.00% |
static inline void audit_mq_getsetattr(mqd_t mqdes, struct mq_attr *mqstat)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 10 | 71.43% | 1 | 50.00% |
kees cook | kees cook | 4 | 28.57% | 1 | 50.00% |
| Total | 14 | 100.00% | 2 | 100.00% |
static inline int audit_log_bprm_fcaps(struct linux_binprm *bprm,
const struct cred *new,
const struct cred *old)
{
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 19 | 70.37% | 1 | 50.00% |
eric paris | eric paris | 8 | 29.63% | 1 | 50.00% |
| Total | 27 | 100.00% | 2 | 100.00% |
static inline void audit_log_capset(const struct cred *new,
const struct cred *old)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 12 | 66.67% | 1 | 50.00% |
eric paris | eric paris | 6 | 33.33% | 1 | 50.00% |
| Total | 18 | 100.00% | 2 | 100.00% |
static inline void audit_mmap_fd(int fd, int flags)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 11 | 91.67% | 1 | 50.00% |
eric paris | eric paris | 1 | 8.33% | 1 | 50.00% |
| Total | 12 | 100.00% | 2 | 100.00% |
static inline void audit_ptrace(struct task_struct *t)
{ }
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 6 | 54.55% | 1 | 50.00% |
eric paris | eric paris | 5 | 45.45% | 1 | 50.00% |
| Total | 11 | 100.00% | 2 | 100.00% |
#define audit_n_rules 0
#define audit_signals 0
#endif /* CONFIG_AUDITSYSCALL */
static inline bool audit_loginuid_set(struct task_struct *tsk)
{
return uid_valid(audit_get_loginuid(tsk));
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 21 | 100.00% | 1 | 100.00% |
| Total | 21 | 100.00% | 1 | 100.00% |
static inline void audit_log_string(struct audit_buffer *ab, const char *buf)
{
audit_log_n_string(ab, buf, strlen(buf));
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
kees cook | kees cook | 16 | 55.17% | 1 | 50.00% |
eric paris | eric paris | 13 | 44.83% | 1 | 50.00% |
| Total | 29 | 100.00% | 2 | 100.00% |
#endif
Overall Contributors
| Person | Tokens | Prop | Commits | CommitProp |
paul moore | paul moore | 1525 | 54.19% | 1 | 1.06% |
kees cook | kees cook | 233 | 8.28% | 3 | 3.19% |
eric paris | eric paris | 218 | 7.75% | 15 | 15.96% |
al viro | al viro | 196 | 6.97% | 21 | 22.34% |
george c. wilson | george c. wilson | 103 | 3.66% | 1 | 1.06% |
ahmed s. darwish | ahmed s. darwish | 91 | 3.23% | 2 | 2.13% |
andrew morton | andrew morton | 86 | 3.06% | 1 | 1.06% |
jeff layton | jeff layton | 80 | 2.84% | 8 | 8.51% |
david woodhouse | david woodhouse | 52 | 1.85% | 10 | 10.64% |
amy griffis | amy griffis | 43 | 1.53% | 5 | 5.32% |
richard guy briggs | richard guy briggs | 40 | 1.42% | 7 | 7.45% |
akashi takahiro | akashi takahiro | 37 | 1.31% | 1 | 1.06% |
steve grubb | steve grubb | 25 | 0.89% | 3 | 3.19% |
eric w. biederman | eric w. biederman | 20 | 0.71% | 3 | 3.19% |
chen gang | chen gang | 10 | 0.36% | 1 | 1.06% |
peter hurley | peter hurley | 9 | 0.32% | 1 | 1.06% |
david howells | david howells | 8 | 0.28% | 2 | 2.13% |
dustin kirkland | dustin kirkland | 8 | 0.28% | 1 | 1.06% |
chris wright | chris wright | 7 | 0.25% | 2 | 2.13% |
mr dash four | mr dash four | 7 | 0.25% | 1 | 1.06% |
miloslav trmac | miloslav trmac | 6 | 0.21% | 1 | 1.06% |
alexey dobriyan | alexey dobriyan | 3 | 0.11% | 1 | 1.06% |
serge hallyn | serge hallyn | 3 | 0.11% | 1 | 1.06% |
mike frysinger | mike frysinger | 3 | 0.11% | 1 | 1.06% |
peter moody | peter moody | 1 | 0.04% | 1 | 1.06% |
| Total | 2814 | 100.00% | 94 | 100.00% |
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.