Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 55669bfa authored by Al Viro's avatar Al Viro
Browse files

[PATCH] audit: AUDIT_PERM support



add support for AUDIT_PERM predicate

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent dc104fb3
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -23,6 +23,22 @@ static unsigned chattr_class[] = {
~0U
};

int audit_classify_syscall(int abi, unsigned syscall)
{
	switch(syscall) {
	case __NR_open:
		return 2;
	case __NR_openat:
		return 3;
	case __NR_socketcall:
		return 4;
	case __NR_execve:
		return 5;
	default:
		return 0;
	}
}

static int __init audit_classes_init(void)
{
	audit_register_class(AUDIT_CLASS_WRITE, write_class);
+16 −0
Original line number Diff line number Diff line
@@ -19,3 +19,19 @@ unsigned ia32_read_class[] = {
#include <asm-generic/audit_read.h>
~0U
};

int ia32_classify_syscall(unsigned syscall)
{
	switch(syscall) {
	case __NR_open:
		return 2;
	case __NR_openat:
		return 3;
	case __NR_socketcall:
		return 4;
	case __NR_execve:
		return 5;
	default:
		return 1;
	}
}
+19 −0
Original line number Diff line number Diff line
@@ -23,6 +23,25 @@ static unsigned chattr_class[] = {
~0U
};

int audit_classify_syscall(int abi, unsigned syscall)
{
#ifdef CONFIG_IA32_SUPPORT
	extern int ia32_classify_syscall(unsigned);
	if (abi == AUDIT_ARCH_I386)
		return ia32_classify_syscall(syscall);
#endif
	switch(syscall) {
	case __NR_open:
		return 2;
	case __NR_openat:
		return 3;
	case __NR_execve:
		return 5;
	default:
		return 0;
	}
}

static int __init audit_classes_init(void)
{
#ifdef CONFIG_IA32_SUPPORT
+21 −0
Original line number Diff line number Diff line
@@ -23,6 +23,27 @@ static unsigned chattr_class[] = {
~0U
};

int audit_classify_syscall(int abi, unsigned syscall)
{
#ifdef CONFIG_PPC64
	extern int ppc32_classify_syscall(unsigned);
	if (abi == AUDIT_ARCH_PPC)
		return ppc32_classify_syscall(syscall);
#endif
	switch(syscall) {
	case __NR_open:
		return 2;
	case __NR_openat:
		return 3;
	case __NR_socketcall:
		return 4;
	case __NR_execve:
		return 5;
	default:
		return 0;
	}
}

static int __init audit_classes_init(void)
{
#ifdef CONFIG_PPC64
+16 −0
Original line number Diff line number Diff line
@@ -20,3 +20,19 @@ unsigned ppc32_read_class[] = {
#include <asm-generic/audit_read.h>
~0U
};

int ppc32_classify_syscall(unsigned syscall)
{
	switch(syscall) {
	case __NR_open:
		return 2;
	case __NR_openat:
		return 3;
	case __NR_socketcall:
		return 4;
	case __NR_execve:
		return 5;
	default:
		return 1;
	}
}
Loading