mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 12:42:02 +00:00
Merge branch 'audit.b29' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current
* 'audit.b29' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current: [PATCH] sparc64 audit syscall classes hookup [PATCH] syscall class hookup for all normal targets
This commit is contained in:
commit
bd314d976e
@ -39,7 +39,6 @@ obj-$(CONFIG_VM86) += vm86.o
|
||||
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
|
||||
obj-$(CONFIG_HPET_TIMER) += hpet.o
|
||||
obj-$(CONFIG_K8_NB) += k8.o
|
||||
obj-$(CONFIG_AUDIT) += audit.o
|
||||
|
||||
EXTRA_AFLAGS := -traditional
|
||||
|
||||
|
@ -75,6 +75,10 @@ config DMA_IS_NORMAL
|
||||
depends on IA64_SGI_SN2
|
||||
default y
|
||||
|
||||
config AUDIT_ARCH
|
||||
bool
|
||||
default y
|
||||
|
||||
choice
|
||||
prompt "System type"
|
||||
default IA64_GENERIC
|
||||
|
@ -95,6 +95,10 @@ config GENERIC_TBSYNC
|
||||
default y if PPC32 && SMP
|
||||
default n
|
||||
|
||||
config AUDIT_ARCH
|
||||
bool
|
||||
default y
|
||||
|
||||
config DEFAULT_UIMAGE
|
||||
bool
|
||||
help
|
||||
|
@ -118,6 +118,10 @@ config SYSVIPC_COMPAT
|
||||
depends on COMPAT && SYSVIPC
|
||||
default y
|
||||
|
||||
config AUDIT_ARCH
|
||||
bool
|
||||
default y
|
||||
|
||||
comment "Code generation options"
|
||||
|
||||
choice
|
||||
|
@ -34,6 +34,10 @@ config ARCH_MAY_HAVE_PC_FDC
|
||||
bool
|
||||
default y
|
||||
|
||||
config AUDIT_ARCH
|
||||
bool
|
||||
default y
|
||||
|
||||
choice
|
||||
prompt "Kernel page size"
|
||||
default SPARC64_PAGE_SIZE_8KB
|
||||
|
@ -25,6 +25,9 @@ obj-$(CONFIG_MODULES) += module.o
|
||||
obj-$(CONFIG_US3_FREQ) += us3_cpufreq.o
|
||||
obj-$(CONFIG_US2E_FREQ) += us2e_cpufreq.o
|
||||
obj-$(CONFIG_KPROBES) += kprobes.o
|
||||
obj-$(CONFIG_AUDIT) += audit.o
|
||||
obj-$(CONFIG_AUDIT)$(CONFIG_SPARC32_COMPAT) += compat_audit.o
|
||||
obj-y += $(obj-yy)
|
||||
|
||||
ifdef CONFIG_SUNOS_EMUL
|
||||
obj-y += sys_sunos32.o sunos_ioctl32.o
|
||||
|
66
arch/sparc64/kernel/audit.c
Normal file
66
arch/sparc64/kernel/audit.c
Normal file
@ -0,0 +1,66 @@
|
||||
#include <linux/init.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/audit.h>
|
||||
#include <asm/unistd.h>
|
||||
|
||||
static unsigned dir_class[] = {
|
||||
#include <asm-generic/audit_dir_write.h>
|
||||
~0U
|
||||
};
|
||||
|
||||
static unsigned read_class[] = {
|
||||
#include <asm-generic/audit_read.h>
|
||||
~0U
|
||||
};
|
||||
|
||||
static unsigned write_class[] = {
|
||||
#include <asm-generic/audit_write.h>
|
||||
~0U
|
||||
};
|
||||
|
||||
static unsigned chattr_class[] = {
|
||||
#include <asm-generic/audit_change_attr.h>
|
||||
~0U
|
||||
};
|
||||
|
||||
int audit_classify_syscall(int abi, unsigned syscall)
|
||||
{
|
||||
#ifdef CONFIG_SPARC32_COMPAT
|
||||
extern int sparc32_classify_syscall(unsigned);
|
||||
if (abi == AUDIT_ARCH_SPARC)
|
||||
return sparc32_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_SPARC32_COMPAT
|
||||
extern __u32 sparc32_dir_class[];
|
||||
extern __u32 sparc32_write_class[];
|
||||
extern __u32 sparc32_read_class[];
|
||||
extern __u32 sparc32_chattr_class[];
|
||||
audit_register_class(AUDIT_CLASS_WRITE_32, sparc32_write_class);
|
||||
audit_register_class(AUDIT_CLASS_READ_32, sparc32_read_class);
|
||||
audit_register_class(AUDIT_CLASS_DIR_WRITE_32, sparc32_dir_class);
|
||||
audit_register_class(AUDIT_CLASS_CHATTR_32, sparc32_chattr_class);
|
||||
#endif
|
||||
audit_register_class(AUDIT_CLASS_WRITE, write_class);
|
||||
audit_register_class(AUDIT_CLASS_READ, read_class);
|
||||
audit_register_class(AUDIT_CLASS_DIR_WRITE, dir_class);
|
||||
audit_register_class(AUDIT_CLASS_CHATTR, chattr_class);
|
||||
return 0;
|
||||
}
|
||||
|
||||
__initcall(audit_classes_init);
|
37
arch/sparc64/kernel/compat_audit.c
Normal file
37
arch/sparc64/kernel/compat_audit.c
Normal file
@ -0,0 +1,37 @@
|
||||
#include <asm-sparc/unistd.h>
|
||||
|
||||
unsigned sparc32_dir_class[] = {
|
||||
#include <asm-generic/audit_dir_write.h>
|
||||
~0U
|
||||
};
|
||||
|
||||
unsigned sparc32_chattr_class[] = {
|
||||
#include <asm-generic/audit_change_attr.h>
|
||||
~0U
|
||||
};
|
||||
|
||||
unsigned sparc32_write_class[] = {
|
||||
#include <asm-generic/audit_write.h>
|
||||
~0U
|
||||
};
|
||||
|
||||
unsigned sparc32_read_class[] = {
|
||||
#include <asm-generic/audit_read.h>
|
||||
~0U
|
||||
};
|
||||
|
||||
int sparc32_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;
|
||||
}
|
||||
}
|
@ -85,6 +85,10 @@ config DMI
|
||||
bool
|
||||
default y
|
||||
|
||||
config AUDIT_ARCH
|
||||
bool
|
||||
default y
|
||||
|
||||
source "init/Kconfig"
|
||||
|
||||
|
||||
|
@ -38,6 +38,11 @@ config LIBCRC32C
|
||||
require M here. See Castagnoli93.
|
||||
Module will be libcrc32c.
|
||||
|
||||
config AUDIT_GENERIC
|
||||
bool
|
||||
depends on AUDIT && !AUDIT_ARCH
|
||||
default y
|
||||
|
||||
#
|
||||
# compression support is select'ed if needed
|
||||
#
|
||||
|
@ -49,6 +49,7 @@ obj-$(CONFIG_TEXTSEARCH_KMP) += ts_kmp.o
|
||||
obj-$(CONFIG_TEXTSEARCH_BM) += ts_bm.o
|
||||
obj-$(CONFIG_TEXTSEARCH_FSM) += ts_fsm.o
|
||||
obj-$(CONFIG_SMP) += percpu_counter.o
|
||||
obj-$(CONFIG_AUDIT_GENERIC) += audit.o
|
||||
|
||||
obj-$(CONFIG_SWIOTLB) += swiotlb.o
|
||||
|
||||
|
@ -30,8 +30,10 @@ int audit_classify_syscall(int abi, unsigned syscall)
|
||||
return 2;
|
||||
case __NR_openat:
|
||||
return 3;
|
||||
#ifdef __NR_socketcall
|
||||
case __NR_socketcall:
|
||||
return 4;
|
||||
#endif
|
||||
case __NR_execve:
|
||||
return 5;
|
||||
default:
|
Loading…
Reference in New Issue
Block a user