diff options
author | Amy Griffis <amy.griffis@hp.com> | 2006-07-13 13:16:39 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2006-08-03 10:50:30 -0400 |
commit | 73d3ec5abad3f1730ac8530899d2c14d92f3ad63 (patch) | |
tree | c2829a1e36ca155eecc7d4b8648fe9755247bec5 /include/linux/audit.h | |
parent | 3e2efce067cec0099f99ae59f28feda99b02b498 (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.h | 8 |
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); | |||
327 | extern void audit_putname(const char *name); | 327 | extern void audit_putname(const char *name); |
328 | extern void __audit_inode(const char *name, const struct inode *inode); | 328 | extern void __audit_inode(const char *name, const struct inode *inode); |
329 | extern void __audit_inode_child(const char *dname, const struct inode *inode, | 329 | extern void __audit_inode_child(const char *dname, const struct inode *inode, |
330 | unsigned long pino); | 330 | const struct inode *parent); |
331 | extern void __audit_inode_update(const struct inode *inode); | 331 | extern void __audit_inode_update(const struct inode *inode); |
332 | static inline void audit_getname(const char *name) | 332 | static 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 | } |
341 | static inline void audit_inode_child(const char *dname, | 341 | static 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 | } |
347 | static inline void audit_inode_update(const struct inode *inode) { | 347 | static inline void audit_inode_update(const struct inode *inode) { |
348 | if (unlikely(current->audit_context)) | 348 | if (unlikely(current->audit_context)) |