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:
@@ -39,7 +39,6 @@ obj-$(CONFIG_VM86) += vm86.o
|
|||||||
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
|
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
|
||||||
obj-$(CONFIG_HPET_TIMER) += hpet.o
|
obj-$(CONFIG_HPET_TIMER) += hpet.o
|
||||||
obj-$(CONFIG_K8_NB) += k8.o
|
obj-$(CONFIG_K8_NB) += k8.o
|
||||||
obj-$(CONFIG_AUDIT) += audit.o
|
|
||||||
|
|
||||||
EXTRA_AFLAGS := -traditional
|
EXTRA_AFLAGS := -traditional
|
||||||
|
|
||||||
|
@@ -75,6 +75,10 @@ config DMA_IS_NORMAL
|
|||||||
depends on IA64_SGI_SN2
|
depends on IA64_SGI_SN2
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
config AUDIT_ARCH
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
|
||||||
choice
|
choice
|
||||||
prompt "System type"
|
prompt "System type"
|
||||||
default IA64_GENERIC
|
default IA64_GENERIC
|
||||||
|
@@ -95,6 +95,10 @@ config GENERIC_TBSYNC
|
|||||||
default y if PPC32 && SMP
|
default y if PPC32 && SMP
|
||||||
default n
|
default n
|
||||||
|
|
||||||
|
config AUDIT_ARCH
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
|
||||||
config DEFAULT_UIMAGE
|
config DEFAULT_UIMAGE
|
||||||
bool
|
bool
|
||||||
help
|
help
|
||||||
|
@@ -118,6 +118,10 @@ config SYSVIPC_COMPAT
|
|||||||
depends on COMPAT && SYSVIPC
|
depends on COMPAT && SYSVIPC
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
config AUDIT_ARCH
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
|
||||||
comment "Code generation options"
|
comment "Code generation options"
|
||||||
|
|
||||||
choice
|
choice
|
||||||
|
@@ -34,6 +34,10 @@ config ARCH_MAY_HAVE_PC_FDC
|
|||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
config AUDIT_ARCH
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
|
||||||
choice
|
choice
|
||||||
prompt "Kernel page size"
|
prompt "Kernel page size"
|
||||||
default SPARC64_PAGE_SIZE_8KB
|
default SPARC64_PAGE_SIZE_8KB
|
||||||
|
@@ -25,6 +25,9 @@ obj-$(CONFIG_MODULES) += module.o
|
|||||||
obj-$(CONFIG_US3_FREQ) += us3_cpufreq.o
|
obj-$(CONFIG_US3_FREQ) += us3_cpufreq.o
|
||||||
obj-$(CONFIG_US2E_FREQ) += us2e_cpufreq.o
|
obj-$(CONFIG_US2E_FREQ) += us2e_cpufreq.o
|
||||||
obj-$(CONFIG_KPROBES) += kprobes.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
|
ifdef CONFIG_SUNOS_EMUL
|
||||||
obj-y += sys_sunos32.o sunos_ioctl32.o
|
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
|
bool
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
config AUDIT_ARCH
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
|
||||||
source "init/Kconfig"
|
source "init/Kconfig"
|
||||||
|
|
||||||
|
|
||||||
|
@@ -38,6 +38,11 @@ config LIBCRC32C
|
|||||||
require M here. See Castagnoli93.
|
require M here. See Castagnoli93.
|
||||||
Module will be libcrc32c.
|
Module will be libcrc32c.
|
||||||
|
|
||||||
|
config AUDIT_GENERIC
|
||||||
|
bool
|
||||||
|
depends on AUDIT && !AUDIT_ARCH
|
||||||
|
default y
|
||||||
|
|
||||||
#
|
#
|
||||||
# compression support is select'ed if needed
|
# 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_BM) += ts_bm.o
|
||||||
obj-$(CONFIG_TEXTSEARCH_FSM) += ts_fsm.o
|
obj-$(CONFIG_TEXTSEARCH_FSM) += ts_fsm.o
|
||||||
obj-$(CONFIG_SMP) += percpu_counter.o
|
obj-$(CONFIG_SMP) += percpu_counter.o
|
||||||
|
obj-$(CONFIG_AUDIT_GENERIC) += audit.o
|
||||||
|
|
||||||
obj-$(CONFIG_SWIOTLB) += swiotlb.o
|
obj-$(CONFIG_SWIOTLB) += swiotlb.o
|
||||||
|
|
||||||
|
@@ -30,8 +30,10 @@ int audit_classify_syscall(int abi, unsigned syscall)
|
|||||||
return 2;
|
return 2;
|
||||||
case __NR_openat:
|
case __NR_openat:
|
||||||
return 3;
|
return 3;
|
||||||
|
#ifdef __NR_socketcall
|
||||||
case __NR_socketcall:
|
case __NR_socketcall:
|
||||||
return 4;
|
return 4;
|
||||||
|
#endif
|
||||||
case __NR_execve:
|
case __NR_execve:
|
||||||
return 5;
|
return 5;
|
||||||
default:
|
default:
|
Reference in New Issue
Block a user