]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
vfs_time_audit: support real dirfsps in smb_time_audit_mkdirat()
authorRalph Boehme <slow@samba.org>
Mon, 14 Dec 2020 14:56:11 +0000 (15:56 +0100)
committerJeremy Allison <jra@samba.org>
Thu, 17 Dec 2020 18:56:29 +0000 (18:56 +0000)
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/modules/vfs_time_audit.c

index 1f7829fd29258ebfd151f3da70b28d5fe12a0ecc..91fef517ded786f91d29e639591e21d99ee97236 100644 (file)
@@ -545,10 +545,19 @@ static int smb_time_audit_mkdirat(vfs_handle_struct *handle,
                                const struct smb_filename *smb_fname,
                                mode_t mode)
 {
+       struct smb_filename *full_fname = NULL;
        int result;
        struct timespec ts1,ts2;
        double timediff;
 
+       full_fname = full_path_from_dirfsp_atname(talloc_tos(),
+                                                 dirfsp,
+                                                 smb_fname);
+       if (full_fname == NULL) {
+               errno = ENOMEM;
+               return -1;
+       }
+
        clock_gettime_mono(&ts1);
        result = SMB_VFS_NEXT_MKDIRAT(handle,
                                dirfsp,
@@ -560,9 +569,11 @@ static int smb_time_audit_mkdirat(vfs_handle_struct *handle,
        if (timediff > audit_timeout) {
                smb_time_audit_log_smb_fname("mkdirat",
                        timediff,
-                       smb_fname);
+                       full_fname);
        }
 
+       TALLOC_FREE(full_fname);
+
        return result;
 }