1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-02 09:47:23 +03:00

s3: VFS: vfs_time_audit. Implement unlinkat().

This is identical to unlink(), as there
are no special cases needed for rmdir().

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
This commit is contained in:
Jeremy Allison 2019-09-12 14:11:20 -07:00 committed by Ralph Boehme
parent 83e0cf6dc9
commit b355a9565d

View File

@ -1084,6 +1084,30 @@ static int smb_time_audit_unlink(vfs_handle_struct *handle,
return result;
}
static int smb_time_audit_unlinkat(vfs_handle_struct *handle,
struct files_struct *dirfsp,
const struct smb_filename *path,
int flags)
{
int result;
struct timespec ts1,ts2;
double timediff;
clock_gettime_mono(&ts1);
result = SMB_VFS_NEXT_UNLINKAT(handle,
dirfsp,
path,
flags);
clock_gettime_mono(&ts2);
timediff = nsec_time_diff(&ts2,&ts1)*1.0e-9;
if (timediff > audit_timeout) {
smb_time_audit_log_smb_fname("unlinkat", timediff, path);
}
return result;
}
static int smb_time_audit_chmod(vfs_handle_struct *handle,
const struct smb_filename *smb_fname,
mode_t mode)
@ -2849,6 +2873,7 @@ static struct vfs_fn_pointers vfs_time_audit_fns = {
.lstat_fn = smb_time_audit_lstat,
.get_alloc_size_fn = smb_time_audit_get_alloc_size,
.unlink_fn = smb_time_audit_unlink,
.unlinkat_fn = smb_time_audit_unlinkat,
.chmod_fn = smb_time_audit_chmod,
.fchmod_fn = smb_time_audit_fchmod,
.chown_fn = smb_time_audit_chown,