mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 16:38:31 +00:00 
			
		
		
		
	 a83fbf6359
			
		
	
	
		a83fbf6359
		
	
	
	
	
		
			
			several targets have no ....at() family and m32r calls its only chown variant chown32(), with __NR_chown being undefined. creat(2) is also absent in some targets. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
		
			
				
	
	
		
			56 lines
		
	
	
		
			1020 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1020 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #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)
 | |
| {
 | |
| 	switch(syscall) {
 | |
| 	case __NR_open:
 | |
| 		return 2;
 | |
| #ifdef __NR_openat
 | |
| 	case __NR_openat:
 | |
| 		return 3;
 | |
| #endif
 | |
| #ifdef __NR_socketcall
 | |
| 	case __NR_socketcall:
 | |
| 		return 4;
 | |
| #endif
 | |
| 	case __NR_execve:
 | |
| 		return 5;
 | |
| 	default:
 | |
| 		return 0;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| static int __init audit_classes_init(void)
 | |
| {
 | |
| 	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);
 |