forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Implement missing functions for parisc to provide kernel audit feature. Signed-off-by: Helge Deller <[email protected]>
- Loading branch information
Showing
8 changed files
with
158 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
#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 | ||
}; | ||
|
||
static unsigned signal_class[] = { | ||
#include <asm-generic/audit_signal.h> | ||
~0U | ||
}; | ||
|
||
int audit_classify_arch(int arch) | ||
{ | ||
#ifdef CONFIG_COMPAT | ||
if (arch == AUDIT_ARCH_PARISC) | ||
return 1; | ||
#endif | ||
return 0; | ||
} | ||
|
||
int audit_classify_syscall(int abi, unsigned syscall) | ||
{ | ||
#ifdef CONFIG_COMPAT | ||
extern int parisc32_classify_syscall(unsigned); | ||
if (abi == AUDIT_ARCH_PARISC) | ||
return parisc32_classify_syscall(syscall); | ||
#endif | ||
switch (syscall) { | ||
case __NR_open: | ||
return 2; | ||
case __NR_openat: | ||
return 3; | ||
case __NR_execve: | ||
return 5; | ||
default: | ||
return 0; | ||
} | ||
} | ||
|
||
static int __init audit_classes_init(void) | ||
{ | ||
#ifdef CONFIG_COMPAT | ||
extern __u32 parisc32_dir_class[]; | ||
extern __u32 parisc32_write_class[]; | ||
extern __u32 parisc32_read_class[]; | ||
extern __u32 parisc32_chattr_class[]; | ||
extern __u32 parisc32_signal_class[]; | ||
audit_register_class(AUDIT_CLASS_WRITE_32, parisc32_write_class); | ||
audit_register_class(AUDIT_CLASS_READ_32, parisc32_read_class); | ||
audit_register_class(AUDIT_CLASS_DIR_WRITE_32, parisc32_dir_class); | ||
audit_register_class(AUDIT_CLASS_CHATTR_32, parisc32_chattr_class); | ||
audit_register_class(AUDIT_CLASS_SIGNAL_32, parisc32_signal_class); | ||
#endif | ||
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); | ||
audit_register_class(AUDIT_CLASS_SIGNAL, signal_class); | ||
return 0; | ||
} | ||
|
||
__initcall(audit_classes_init); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
#include <asm/unistd.h> | ||
|
||
unsigned int parisc32_dir_class[] = { | ||
#include <asm-generic/audit_dir_write.h> | ||
~0U | ||
}; | ||
|
||
unsigned int parisc32_chattr_class[] = { | ||
#include <asm-generic/audit_change_attr.h> | ||
~0U | ||
}; | ||
|
||
unsigned int parisc32_write_class[] = { | ||
#include <asm-generic/audit_write.h> | ||
~0U | ||
}; | ||
|
||
unsigned int parisc32_read_class[] = { | ||
#include <asm-generic/audit_read.h> | ||
~0U | ||
}; | ||
|
||
unsigned int parisc32_signal_class[] = { | ||
#include <asm-generic/audit_signal.h> | ||
~0U | ||
}; | ||
|
||
int parisc32_classify_syscall(unsigned syscall) | ||
{ | ||
switch (syscall) { | ||
case __NR_open: | ||
return 2; | ||
case __NR_openat: | ||
return 3; | ||
case __NR_execve: | ||
return 5; | ||
default: | ||
return 1; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters