Collect inode info for the remaining xattr syscalls that operate on a file
descriptor. These don't call a path_lookup variant, so they aren't covered by
the general audit hook.
Signed-off-by: Amy Griffis <amy.griffis(a)hp.com>
---
fs/xattr.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/fs/xattr.c b/fs/xattr.c
index 3864613..4f21fc9 100644
--- a/fs/xattr.c
+++ b/fs/xattr.c
@@ -346,11 +346,14 @@ asmlinkage ssize_t
sys_fgetxattr(int fd, char __user *name, void __user *value, size_t size)
{
struct file *f;
+ struct dentry *dentry;
ssize_t error = -EBADF;
f = fget(fd);
if (!f)
return error;
+ dentry = f->f_path.dentry;
+ audit_inode(NULL, dentry->d_inode);
error = getxattr(f->f_path.dentry, name, value, size);
fput(f);
return error;
@@ -418,11 +421,14 @@ asmlinkage ssize_t
sys_flistxattr(int fd, char __user *list, size_t size)
{
struct file *f;
+ struct dentry *dentry;
ssize_t error = -EBADF;
f = fget(fd);
if (!f)
return error;
+ dentry = f->f_path.dentry;
+ audit_inode(NULL, dentry->d_inode);
error = listxattr(f->f_path.dentry, list, size);
fput(f);
return error;
--
1.4.4.4