brintos

brintos / linux-shallow public Read only

0
0
Text · 1.9 KiB · 738bda2 Raw
90 lines · c
1// SPDX-License-Identifier: GPL-2.02#include <linux/init.h>3#include <linux/types.h>4#include <linux/audit.h>5#include <asm/unistd.h>6 7static unsigned dir_class[] = {8#include <asm-generic/audit_dir_write.h>9~0U10};11 12static unsigned read_class[] = {13#include <asm-generic/audit_read.h>14~0U15};16 17static unsigned write_class[] = {18#include <asm-generic/audit_write.h>19~0U20};21 22static unsigned chattr_class[] = {23#include <asm-generic/audit_change_attr.h>24~0U25};26 27static unsigned signal_class[] = {28#include <asm-generic/audit_signal.h>29~0U30};31 32int audit_classify_arch(int arch)33{34	if (audit_is_compat(arch))35		return 1;36	else37		return 0;38}39 40int audit_classify_syscall(int abi, unsigned syscall)41{42	if (audit_is_compat(abi))43		return audit_classify_compat_syscall(abi, syscall);44 45	switch(syscall) {46#ifdef __NR_open47	case __NR_open:48		return AUDITSC_OPEN;49#endif50#ifdef __NR_openat51	case __NR_openat:52		return AUDITSC_OPENAT;53#endif54#ifdef __NR_socketcall55	case __NR_socketcall:56		return AUDITSC_SOCKETCALL;57#endif58#ifdef __NR_execveat59	case __NR_execveat:60#endif61	case __NR_execve:62		return AUDITSC_EXECVE;63#ifdef __NR_openat264	case __NR_openat2:65		return AUDITSC_OPENAT2;66#endif67	default:68		return AUDITSC_NATIVE;69	}70}71 72static int __init audit_classes_init(void)73{74#ifdef CONFIG_AUDIT_COMPAT_GENERIC75	audit_register_class(AUDIT_CLASS_WRITE_32, compat_write_class);76	audit_register_class(AUDIT_CLASS_READ_32, compat_read_class);77	audit_register_class(AUDIT_CLASS_DIR_WRITE_32, compat_dir_class);78	audit_register_class(AUDIT_CLASS_CHATTR_32, compat_chattr_class);79	audit_register_class(AUDIT_CLASS_SIGNAL_32, compat_signal_class);80#endif81	audit_register_class(AUDIT_CLASS_WRITE, write_class);82	audit_register_class(AUDIT_CLASS_READ, read_class);83	audit_register_class(AUDIT_CLASS_DIR_WRITE, dir_class);84	audit_register_class(AUDIT_CLASS_CHATTR, chattr_class);85	audit_register_class(AUDIT_CLASS_SIGNAL, signal_class);86	return 0;87}88 89__initcall(audit_classes_init);90