Version:  2.0.40 2.2.26 2.4.37 3.13 3.14 3.15 3.16 3.17 3.18 3.19 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10

Linux/lib/audit.c

  1 #include <linux/init.h>
  2 #include <linux/types.h>
  3 #include <linux/audit.h>
  4 #include <asm/unistd.h>
  5 
  6 static unsigned dir_class[] = {
  7 #include <asm-generic/audit_dir_write.h>
  8 ~0U
  9 };
 10 
 11 static unsigned read_class[] = {
 12 #include <asm-generic/audit_read.h>
 13 ~0U
 14 };
 15 
 16 static unsigned write_class[] = {
 17 #include <asm-generic/audit_write.h>
 18 ~0U
 19 };
 20 
 21 static unsigned chattr_class[] = {
 22 #include <asm-generic/audit_change_attr.h>
 23 ~0U
 24 };
 25 
 26 static unsigned signal_class[] = {
 27 #include <asm-generic/audit_signal.h>
 28 ~0U
 29 };
 30 
 31 int audit_classify_arch(int arch)
 32 {
 33         if (audit_is_compat(arch))
 34                 return 1;
 35         else
 36                 return 0;
 37 }
 38 
 39 int audit_classify_syscall(int abi, unsigned syscall)
 40 {
 41         if (audit_is_compat(abi))
 42                 return audit_classify_compat_syscall(abi, syscall);
 43 
 44         switch(syscall) {
 45 #ifdef __NR_open
 46         case __NR_open:
 47                 return 2;
 48 #endif
 49 #ifdef __NR_openat
 50         case __NR_openat:
 51                 return 3;
 52 #endif
 53 #ifdef __NR_socketcall
 54         case __NR_socketcall:
 55                 return 4;
 56 #endif
 57 #ifdef __NR_execveat
 58         case __NR_execveat:
 59 #endif
 60         case __NR_execve:
 61                 return 5;
 62         default:
 63                 return 0;
 64         }
 65 }
 66 
 67 static int __init audit_classes_init(void)
 68 {
 69 #ifdef CONFIG_AUDIT_COMPAT_GENERIC
 70         audit_register_class(AUDIT_CLASS_WRITE_32, compat_write_class);
 71         audit_register_class(AUDIT_CLASS_READ_32, compat_read_class);
 72         audit_register_class(AUDIT_CLASS_DIR_WRITE_32, compat_dir_class);
 73         audit_register_class(AUDIT_CLASS_CHATTR_32, compat_chattr_class);
 74         audit_register_class(AUDIT_CLASS_SIGNAL_32, compat_signal_class);
 75 #endif
 76         audit_register_class(AUDIT_CLASS_WRITE, write_class);
 77         audit_register_class(AUDIT_CLASS_READ, read_class);
 78         audit_register_class(AUDIT_CLASS_DIR_WRITE, dir_class);
 79         audit_register_class(AUDIT_CLASS_CHATTR, chattr_class);
 80         audit_register_class(AUDIT_CLASS_SIGNAL, signal_class);
 81         return 0;
 82 }
 83 
 84 __initcall(audit_classes_init);
 85 

This page was automatically generated by LXR 0.3.1 (source).  •  Linux is a registered trademark of Linus Torvalds  •  Contact us