From 104302ae1ee72737508c01e1df0da7b91dafc902 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Wed, 20 May 2020 23:02:20 +0200 Subject: [PATCH] vfs_extd_audit: implement SMB_VFS_OPENAT() Signed-off-by: Ralph Boehme Reviewed-by: Jeremy Allison --- source3/modules/vfs_extd_audit.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/source3/modules/vfs_extd_audit.c b/source3/modules/vfs_extd_audit.c index b8cb5d54e6c..d38a09a2b54 100644 --- a/source3/modules/vfs_extd_audit.c +++ b/source3/modules/vfs_extd_audit.c @@ -236,6 +236,37 @@ 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, + files_struct *fsp, + int flags, + mode_t mode) +{ + int ret; + + ret = SMB_VFS_NEXT_OPENAT(handle, dirfsp, smb_fname, fsp, flags, mode); + + if (lp_syslog() > 0) { + syslog(audit_syslog_priority(handle), + "openat %s/%s (fd %d) %s%s%s\n", + smb_fname_str_dbg(fsp->fsp_name), + smb_fname->base_name, + ret, + ((flags & O_WRONLY) || (flags & O_RDWR)) ? + "for writing " : "", + (ret < 0) ? "failed: " : "", + (ret < 0) ? strerror(errno) : ""); + } + DEBUG(2, ("vfs_extd_audit: open %s/%s %s %s\n", + smb_fname_str_dbg(fsp->fsp_name), + smb_fname_str_dbg(smb_fname), + (ret < 0) ? "failed: " : "", + (ret < 0) ? strerror(errno) : "")); + + return ret; +} + static int audit_close(vfs_handle_struct *handle, files_struct *fsp) { int result; @@ -359,6 +390,7 @@ static struct vfs_fn_pointers vfs_extd_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,