From: Jeremy Allison Date: Thu, 12 Sep 2019 17:50:06 +0000 (-0700) Subject: s3: VFS: vfs_full_audit. Implement unlinkat(). X-Git-Tag: talloc-2.3.1~641 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6c28a7749bb8c7c45db86647f5046d2df654653e;p=thirdparty%2Fsamba.git s3: VFS: vfs_full_audit. Implement unlinkat(). This is identical to unlink(), as there are no special cases needed for rmdir(). Signed-off-by: Jeremy Allison Reviewed-by: Ralph Boehme --- diff --git a/source3/modules/vfs_full_audit.c b/source3/modules/vfs_full_audit.c index 8c06b3a6cd2..feb60f032d9 100644 --- a/source3/modules/vfs_full_audit.c +++ b/source3/modules/vfs_full_audit.c @@ -139,6 +139,7 @@ typedef enum _vfs_op_type { SMB_VFS_OP_LSTAT, SMB_VFS_OP_GET_ALLOC_SIZE, SMB_VFS_OP_UNLINK, + SMB_VFS_OP_UNLINKAT, SMB_VFS_OP_CHMOD, SMB_VFS_OP_FCHMOD, SMB_VFS_OP_CHOWN, @@ -282,6 +283,7 @@ static struct { { SMB_VFS_OP_LSTAT, "lstat" }, { SMB_VFS_OP_GET_ALLOC_SIZE, "get_alloc_size" }, { SMB_VFS_OP_UNLINK, "unlink" }, + { SMB_VFS_OP_UNLINKAT, "unlinkat" }, { SMB_VFS_OP_CHMOD, "chmod" }, { SMB_VFS_OP_FCHMOD, "fchmod" }, { SMB_VFS_OP_CHOWN, "chown" }, @@ -1527,6 +1529,24 @@ static int smb_full_audit_unlink(vfs_handle_struct *handle, return result; } +static int smb_full_audit_unlinkat(vfs_handle_struct *handle, + struct files_struct *dirfsp, + const struct smb_filename *smb_fname, + int flags) +{ + int result; + + result = SMB_VFS_NEXT_UNLINKAT(handle, + dirfsp, + smb_fname, + flags); + + do_log(SMB_VFS_OP_UNLINKAT, (result >= 0), handle, "%s", + smb_fname_str_do_log(handle->conn, smb_fname)); + + return result; +} + static int smb_full_audit_chmod(vfs_handle_struct *handle, const struct smb_filename *smb_fname, mode_t mode) @@ -2964,6 +2984,7 @@ static struct vfs_fn_pointers vfs_full_audit_fns = { .lstat_fn = smb_full_audit_lstat, .get_alloc_size_fn = smb_full_audit_get_alloc_size, .unlink_fn = smb_full_audit_unlink, + .unlinkat_fn = smb_full_audit_unlinkat, .chmod_fn = smb_full_audit_chmod, .fchmod_fn = smb_full_audit_fchmod, .chown_fn = smb_full_audit_chown,