Browse Source

audit: support the "standard" <asm-generic/unistd.h>

Many of the syscalls mentioned in the audit code are not present
for architectures that implement only the "standard" set of
Linux syscalls (e.g. openat, but not open, etc.).  This change
adds proper #ifdefs for all those syscalls.

Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Chris Metcalf 14 years ago
parent
commit
aaeb012fe4

+ 4 - 0
include/asm-generic/audit_change_attr.h

@@ -1,4 +1,6 @@
+#ifdef __NR_chmod
 __NR_chmod,
 __NR_chmod,
+#endif
 __NR_fchmod,
 __NR_fchmod,
 #ifdef __NR_chown
 #ifdef __NR_chown
 __NR_chown,
 __NR_chown,
@@ -20,7 +22,9 @@ __NR_chown32,
 __NR_fchown32,
 __NR_fchown32,
 __NR_lchown32,
 __NR_lchown32,
 #endif
 #endif
+#ifdef __NR_link
 __NR_link,
 __NR_link,
+#endif
 #ifdef __NR_linkat
 #ifdef __NR_linkat
 __NR_linkat,
 __NR_linkat,
 #endif
 #endif

+ 14 - 0
include/asm-generic/audit_dir_write.h

@@ -1,13 +1,27 @@
+#ifdef __NR_rename
 __NR_rename,
 __NR_rename,
+#endif
+#ifdef __NR_mkdir
 __NR_mkdir,
 __NR_mkdir,
+#endif
+#ifdef __NR_rmdir
 __NR_rmdir,
 __NR_rmdir,
+#endif
 #ifdef __NR_creat
 #ifdef __NR_creat
 __NR_creat,
 __NR_creat,
 #endif
 #endif
+#ifdef __NR_link
 __NR_link,
 __NR_link,
+#endif
+#ifdef __NR_unlink
 __NR_unlink,
 __NR_unlink,
+#endif
+#ifdef __NR_symlink
 __NR_symlink,
 __NR_symlink,
+#endif
+#ifdef __NR_mknod
 __NR_mknod,
 __NR_mknod,
+#endif
 #ifdef __NR_mkdirat
 #ifdef __NR_mkdirat
 __NR_mkdirat,
 __NR_mkdirat,
 __NR_mknodat,
 __NR_mknodat,

+ 5 - 0
include/asm-generic/audit_read.h

@@ -1,4 +1,6 @@
+#ifdef __NR_readlink
 __NR_readlink,
 __NR_readlink,
+#endif
 __NR_quotactl,
 __NR_quotactl,
 __NR_listxattr,
 __NR_listxattr,
 __NR_llistxattr,
 __NR_llistxattr,
@@ -6,3 +8,6 @@ __NR_flistxattr,
 __NR_getxattr,
 __NR_getxattr,
 __NR_lgetxattr,
 __NR_lgetxattr,
 __NR_fgetxattr,
 __NR_fgetxattr,
+#ifdef __NR_readlinkat
+__NR_readlinkat,
+#endif

+ 2 - 0
include/asm-generic/audit_write.h

@@ -4,7 +4,9 @@ __NR_acct,
 __NR_swapon,
 __NR_swapon,
 #endif
 #endif
 __NR_quotactl,
 __NR_quotactl,
+#ifdef __NR_truncate
 __NR_truncate,
 __NR_truncate,
+#endif
 #ifdef __NR_truncate64
 #ifdef __NR_truncate64
 __NR_truncate64,
 __NR_truncate64,
 #endif
 #endif

+ 2 - 0
lib/audit.c

@@ -36,8 +36,10 @@ int audit_classify_arch(int arch)
 int audit_classify_syscall(int abi, unsigned syscall)
 int audit_classify_syscall(int abi, unsigned syscall)
 {
 {
 	switch(syscall) {
 	switch(syscall) {
+#ifdef __NR_open
 	case __NR_open:
 	case __NR_open:
 		return 2;
 		return 2;
+#endif
 #ifdef __NR_openat
 #ifdef __NR_openat
 	case __NR_openat:
 	case __NR_openat:
 		return 3;
 		return 3;