Răsfoiți Sursa

[PATCH] fix missing ifdefs in syscall classes hookup for generic targets

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>
Al Viro 19 ani în urmă
părinte
comite
a83fbf6359

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

@@ -1,16 +1,20 @@
 __NR_chmod,
 __NR_chmod,
 __NR_fchmod,
 __NR_fchmod,
+#ifdef __NR_chown
 __NR_chown,
 __NR_chown,
 __NR_fchown,
 __NR_fchown,
 __NR_lchown,
 __NR_lchown,
+#endif
 __NR_setxattr,
 __NR_setxattr,
 __NR_lsetxattr,
 __NR_lsetxattr,
 __NR_fsetxattr,
 __NR_fsetxattr,
 __NR_removexattr,
 __NR_removexattr,
 __NR_lremovexattr,
 __NR_lremovexattr,
 __NR_fremovexattr,
 __NR_fremovexattr,
+#ifdef __NR_fchownat
 __NR_fchownat,
 __NR_fchownat,
 __NR_fchmodat,
 __NR_fchmodat,
+#endif
 #ifdef __NR_chown32
 #ifdef __NR_chown32
 __NR_chown32,
 __NR_chown32,
 __NR_fchown32,
 __NR_fchown32,

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

@@ -1,14 +1,18 @@
 __NR_rename,
 __NR_rename,
 __NR_mkdir,
 __NR_mkdir,
 __NR_rmdir,
 __NR_rmdir,
+#ifdef __NR_creat
 __NR_creat,
 __NR_creat,
+#endif
 __NR_link,
 __NR_link,
 __NR_unlink,
 __NR_unlink,
 __NR_symlink,
 __NR_symlink,
 __NR_mknod,
 __NR_mknod,
+#ifdef __NR_mkdirat
 __NR_mkdirat,
 __NR_mkdirat,
 __NR_mknodat,
 __NR_mknodat,
 __NR_unlinkat,
 __NR_unlinkat,
 __NR_renameat,
 __NR_renameat,
 __NR_linkat,
 __NR_linkat,
 __NR_symlinkat,
 __NR_symlinkat,
+#endif

+ 2 - 0
lib/audit.c

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