diff options
author | Amy Griffis <amy.griffis@hp.com> | 2007-03-29 18:01:04 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2007-05-11 05:38:25 -0400 |
commit | e54dc2431d740a79a6bd013babade99d71b1714f (patch) | |
tree | 16b0990d5c16946239a17b332f54b5918fb03305 /include | |
parent | 7f13da40e36c84d0d046b7adbd060af7d3717250 (diff) |
[PATCH] audit signal recipients
When auditing syscalls that send signals, log the pid and security
context for each target process. Optimize the data collection by
adding a counter for signal-related rules, and avoiding allocating an
aux struct unless we have more than one target process. For process
groups, collect pid/context data in blocks of 16. Move the
audit_signal_info() hook up in check_kill_permission() so we audit
attempts where permission is denied.
Signed-off-by: Amy Griffis <amy.griffis@hp.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/audit.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/audit.h b/include/linux/audit.h index f165308254dc..fde0f1420cd2 100644 --- a/include/linux/audit.h +++ b/include/linux/audit.h | |||
@@ -340,6 +340,7 @@ struct mqstat; | |||
340 | #define AUDITSC_RESULT(x) ( ((long)(x))<0?AUDITSC_FAILURE:AUDITSC_SUCCESS ) | 340 | #define AUDITSC_RESULT(x) ( ((long)(x))<0?AUDITSC_FAILURE:AUDITSC_SUCCESS ) |
341 | extern int __init audit_register_class(int class, unsigned *list); | 341 | extern int __init audit_register_class(int class, unsigned *list); |
342 | extern int audit_classify_syscall(int abi, unsigned syscall); | 342 | extern int audit_classify_syscall(int abi, unsigned syscall); |
343 | extern int audit_classify_arch(int arch); | ||
343 | #ifdef CONFIG_AUDITSYSCALL | 344 | #ifdef CONFIG_AUDITSYSCALL |
344 | /* These are defined in auditsc.c */ | 345 | /* These are defined in auditsc.c */ |
345 | /* Public API */ | 346 | /* Public API */ |
@@ -458,6 +459,7 @@ static inline int audit_mq_getsetattr(mqd_t mqdes, struct mq_attr *mqstat) | |||
458 | return 0; | 459 | return 0; |
459 | } | 460 | } |
460 | extern int audit_n_rules; | 461 | extern int audit_n_rules; |
462 | extern int audit_signals; | ||
461 | #else | 463 | #else |
462 | #define audit_alloc(t) ({ 0; }) | 464 | #define audit_alloc(t) ({ 0; }) |
463 | #define audit_free(t) do { ; } while (0) | 465 | #define audit_free(t) do { ; } while (0) |
@@ -490,6 +492,7 @@ extern int audit_n_rules; | |||
490 | #define audit_mq_getsetattr(d,s) ({ 0; }) | 492 | #define audit_mq_getsetattr(d,s) ({ 0; }) |
491 | #define audit_ptrace(t) ((void)0) | 493 | #define audit_ptrace(t) ((void)0) |
492 | #define audit_n_rules 0 | 494 | #define audit_n_rules 0 |
495 | #define audit_signals 0 | ||
493 | #endif | 496 | #endif |
494 | 497 | ||
495 | #ifdef CONFIG_AUDIT | 498 | #ifdef CONFIG_AUDIT |