From e7b421832e22aa7ee92b64f9769af6b6f13f0b71 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Wed, 20 May 2020 22:58:47 +0200 Subject: [PATCH] vfs_audit: implement SMB_VFS_OPENAT() Signed-off-by: Ralph Boehme Reviewed-by: Jeremy Allison --- source3/modules/vfs_audit.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/source3/modules/vfs_audit.c b/source3/modules/vfs_audit.c index 916d8a04206..464dbde2640 100644 --- a/source3/modules/vfs_audit.c +++ b/source3/modules/vfs_audit.c @@ -214,6 +214,27 @@ static int audit_open(vfs_handle_struct *handle, return result; } +static int audit_openat(vfs_handle_struct *handle, + const struct files_struct *dirfsp, + const struct smb_filename *smb_fname, + struct files_struct *fsp, + int flags, + mode_t mode) +{ + int result; + + result = SMB_VFS_NEXT_OPENAT(handle, dirfsp, smb_fname, fsp, flags, mode); + + syslog(audit_syslog_priority(handle), + "openat %s (fd %d) %s%s%s\n", + fsp_str_dbg(fsp), result, + ((flags & O_WRONLY) || (flags & O_RDWR)) ? "for writing " : "", + (result < 0) ? "failed: " : "", + (result < 0) ? strerror(errno) : ""); + + return result; +} + static int audit_close(vfs_handle_struct *handle, files_struct *fsp) { int result; @@ -306,6 +327,7 @@ static struct vfs_fn_pointers vfs_audit_fns = { .disconnect_fn = audit_disconnect, .mkdirat_fn = audit_mkdirat, .open_fn = audit_open, + .openat_fn = audit_openat, .close_fn = audit_close, .renameat_fn = audit_renameat, .unlinkat_fn = audit_unlinkat,