aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-11 12:57:16 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-11 12:57:16 -0400
commit853da0022023c046e0a5ccc51d427745f0c94de7 (patch)
treebc36f80f00aa11c3c239a80ecf04ba8238219ce8 /include
parent5884c40668a928bba017eaf54e2eb3c01c8a98e6 (diff)
parent0a4ff8c2598b72f2fa9d50aae9e1809e684dbf41 (diff)
Merge branch 'audit.b38' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current
* 'audit.b38' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current: [PATCH] Abnormal End of Processes [PATCH] match audit name data [PATCH] complete message queue auditing [PATCH] audit inode for all xattr syscalls [PATCH] initialize name osid [PATCH] audit signal recipients [PATCH] add SIGNAL syscall class (v3) [PATCH] auditing ptrace
Diffstat (limited to 'include')
-rw-r--r--include/asm-generic/audit_signal.h3
-rw-r--r--include/linux/audit.h21
2 files changed, 19 insertions, 5 deletions
diff --git a/include/asm-generic/audit_signal.h b/include/asm-generic/audit_signal.h
new file mode 100644
index 000000000000..6feab7f18a53
--- /dev/null
+++ b/include/asm-generic/audit_signal.h
@@ -0,0 +1,3 @@
1__NR_kill,
2__NR_tgkill,
3__NR_tkill,
diff --git a/include/linux/audit.h b/include/linux/audit.h
index 773e30df11ee..fccc6e50298a 100644
--- a/include/linux/audit.h
+++ b/include/linux/audit.h
@@ -91,6 +91,7 @@
91#define AUDIT_MQ_GETSETATTR 1315 /* POSIX MQ get/set attribute record type */ 91#define AUDIT_MQ_GETSETATTR 1315 /* POSIX MQ get/set attribute record type */
92#define AUDIT_KERNEL_OTHER 1316 /* For use by 3rd party modules */ 92#define AUDIT_KERNEL_OTHER 1316 /* For use by 3rd party modules */
93#define AUDIT_FD_PAIR 1317 /* audit record for pipe/socketpair */ 93#define AUDIT_FD_PAIR 1317 /* audit record for pipe/socketpair */
94#define AUDIT_OBJ_PID 1318 /* ptrace target */
94 95
95#define AUDIT_AVC 1400 /* SE Linux avc denial or grant */ 96#define AUDIT_AVC 1400 /* SE Linux avc denial or grant */
96#define AUDIT_SELINUX_ERR 1401 /* Internal SE Linux Errors */ 97#define AUDIT_SELINUX_ERR 1401 /* Internal SE Linux Errors */
@@ -111,6 +112,7 @@
111#define AUDIT_FIRST_KERN_ANOM_MSG 1700 112#define AUDIT_FIRST_KERN_ANOM_MSG 1700
112#define AUDIT_LAST_KERN_ANOM_MSG 1799 113#define AUDIT_LAST_KERN_ANOM_MSG 1799
113#define AUDIT_ANOM_PROMISCUOUS 1700 /* Device changed promiscuous mode */ 114#define AUDIT_ANOM_PROMISCUOUS 1700 /* Device changed promiscuous mode */
115#define AUDIT_ANOM_ABEND 1701 /* Process ended abnormally */
114 116
115#define AUDIT_KERNEL 2000 /* Asynchronous audit record. NOT A REQUEST. */ 117#define AUDIT_KERNEL 2000 /* Asynchronous audit record. NOT A REQUEST. */
116 118
@@ -148,6 +150,8 @@
148#define AUDIT_CLASS_READ_32 5 150#define AUDIT_CLASS_READ_32 5
149#define AUDIT_CLASS_WRITE 6 151#define AUDIT_CLASS_WRITE 6
150#define AUDIT_CLASS_WRITE_32 7 152#define AUDIT_CLASS_WRITE_32 7
153#define AUDIT_CLASS_SIGNAL 8
154#define AUDIT_CLASS_SIGNAL_32 9
151 155
152/* This bitmask is used to validate user input. It represents all bits that 156/* This bitmask is used to validate user input. It represents all bits that
153 * are currently used in an audit field constant understood by the kernel. 157 * are currently used in an audit field constant understood by the kernel.
@@ -337,6 +341,7 @@ struct mqstat;
337#define AUDITSC_RESULT(x) ( ((long)(x))<0?AUDITSC_FAILURE:AUDITSC_SUCCESS ) 341#define AUDITSC_RESULT(x) ( ((long)(x))<0?AUDITSC_FAILURE:AUDITSC_SUCCESS )
338extern int __init audit_register_class(int class, unsigned *list); 342extern int __init audit_register_class(int class, unsigned *list);
339extern int audit_classify_syscall(int abi, unsigned syscall); 343extern int audit_classify_syscall(int abi, unsigned syscall);
344extern int audit_classify_arch(int arch);
340#ifdef CONFIG_AUDITSYSCALL 345#ifdef CONFIG_AUDITSYSCALL
341/* These are defined in auditsc.c */ 346/* These are defined in auditsc.c */
342 /* Public API */ 347 /* Public API */
@@ -351,7 +356,8 @@ extern void audit_putname(const char *name);
351extern void __audit_inode(const char *name, const struct inode *inode); 356extern void __audit_inode(const char *name, const struct inode *inode);
352extern void __audit_inode_child(const char *dname, const struct inode *inode, 357extern void __audit_inode_child(const char *dname, const struct inode *inode,
353 const struct inode *parent); 358 const struct inode *parent);
354extern void __audit_inode_update(const struct inode *inode); 359extern void __audit_ptrace(struct task_struct *t);
360
355static inline int audit_dummy_context(void) 361static inline int audit_dummy_context(void)
356{ 362{
357 void *p = current->audit_context; 363 void *p = current->audit_context;
@@ -372,9 +378,12 @@ static inline void audit_inode_child(const char *dname,
372 if (unlikely(!audit_dummy_context())) 378 if (unlikely(!audit_dummy_context()))
373 __audit_inode_child(dname, inode, parent); 379 __audit_inode_child(dname, inode, parent);
374} 380}
375static inline void audit_inode_update(const struct inode *inode) { 381void audit_core_dumps(long signr);
382
383static inline void audit_ptrace(struct task_struct *t)
384{
376 if (unlikely(!audit_dummy_context())) 385 if (unlikely(!audit_dummy_context()))
377 __audit_inode_update(inode); 386 __audit_ptrace(t);
378} 387}
379 388
380 /* Private API (for audit.c only) */ 389 /* Private API (for audit.c only) */
@@ -447,6 +456,7 @@ static inline int audit_mq_getsetattr(mqd_t mqdes, struct mq_attr *mqstat)
447 return 0; 456 return 0;
448} 457}
449extern int audit_n_rules; 458extern int audit_n_rules;
459extern int audit_signals;
450#else 460#else
451#define audit_alloc(t) ({ 0; }) 461#define audit_alloc(t) ({ 0; })
452#define audit_free(t) do { ; } while (0) 462#define audit_free(t) do { ; } while (0)
@@ -457,10 +467,9 @@ extern int audit_n_rules;
457#define audit_putname(n) do { ; } while (0) 467#define audit_putname(n) do { ; } while (0)
458#define __audit_inode(n,i) do { ; } while (0) 468#define __audit_inode(n,i) do { ; } while (0)
459#define __audit_inode_child(d,i,p) do { ; } while (0) 469#define __audit_inode_child(d,i,p) do { ; } while (0)
460#define __audit_inode_update(i) do { ; } while (0)
461#define audit_inode(n,i) do { ; } while (0) 470#define audit_inode(n,i) do { ; } while (0)
462#define audit_inode_child(d,i,p) do { ; } while (0) 471#define audit_inode_child(d,i,p) do { ; } while (0)
463#define audit_inode_update(i) do { ; } while (0) 472#define audit_core_dumps(i) do { ; } while (0)
464#define auditsc_get_stamp(c,t,s) do { BUG(); } while (0) 473#define auditsc_get_stamp(c,t,s) do { BUG(); } while (0)
465#define audit_get_loginuid(c) ({ -1; }) 474#define audit_get_loginuid(c) ({ -1; })
466#define audit_log_task_context(b) do { ; } while (0) 475#define audit_log_task_context(b) do { ; } while (0)
@@ -477,7 +486,9 @@ extern int audit_n_rules;
477#define audit_mq_timedreceive(d,l,p,t) ({ 0; }) 486#define audit_mq_timedreceive(d,l,p,t) ({ 0; })
478#define audit_mq_notify(d,n) ({ 0; }) 487#define audit_mq_notify(d,n) ({ 0; })
479#define audit_mq_getsetattr(d,s) ({ 0; }) 488#define audit_mq_getsetattr(d,s) ({ 0; })
489#define audit_ptrace(t) ((void)0)
480#define audit_n_rules 0 490#define audit_n_rules 0
491#define audit_signals 0
481#endif 492#endif
482 493
483#ifdef CONFIG_AUDIT 494#ifdef CONFIG_AUDIT