aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/audit.h
diff options
context:
space:
mode:
authorAmy Griffis <amy.griffis@hp.com>2006-07-13 13:16:39 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2006-08-03 10:50:30 -0400
commit73d3ec5abad3f1730ac8530899d2c14d92f3ad63 (patch)
treec2829a1e36ca155eecc7d4b8648fe9755247bec5 /include/linux/audit.h
parent3e2efce067cec0099f99ae59f28feda99b02b498 (diff)
[PATCH] fix missed create event for directory audit
When an object is created via a symlink into an audited directory, audit misses the event due to not having collected the inode data for the directory. Modify __audit_inode_child() to copy the parent inode data if a parent wasn't found in audit_names[]. Signed-off-by: Amy Griffis <amy.griffis@hp.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/linux/audit.h')
-rw-r--r--include/linux/audit.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/include/linux/audit.h b/include/linux/audit.h
index e7e5e5348987..bf196c05826c 100644
--- a/include/linux/audit.h
+++ b/include/linux/audit.h
@@ -327,7 +327,7 @@ extern void __audit_getname(const char *name);
327extern void audit_putname(const char *name); 327extern void audit_putname(const char *name);
328extern void __audit_inode(const char *name, const struct inode *inode); 328extern void __audit_inode(const char *name, const struct inode *inode);
329extern void __audit_inode_child(const char *dname, const struct inode *inode, 329extern void __audit_inode_child(const char *dname, const struct inode *inode,
330 unsigned long pino); 330 const struct inode *parent);
331extern void __audit_inode_update(const struct inode *inode); 331extern void __audit_inode_update(const struct inode *inode);
332static inline void audit_getname(const char *name) 332static inline void audit_getname(const char *name)
333{ 333{
@@ -339,10 +339,10 @@ static inline void audit_inode(const char *name, const struct inode *inode) {
339 __audit_inode(name, inode); 339 __audit_inode(name, inode);
340} 340}
341static inline void audit_inode_child(const char *dname, 341static inline void audit_inode_child(const char *dname,
342 const struct inode *inode, 342 const struct inode *inode,
343 unsigned long pino) { 343 const struct inode *parent) {
344 if (unlikely(current->audit_context)) 344 if (unlikely(current->audit_context))
345 __audit_inode_child(dname, inode, pino); 345 __audit_inode_child(dname, inode, parent);
346} 346}
347static inline void audit_inode_update(const struct inode *inode) { 347static inline void audit_inode_update(const struct inode *inode) {
348 if (unlikely(current->audit_context)) 348 if (unlikely(current->audit_context))