]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
vfs_extd_audit: support real dirfsps in audit_mkdirat()
authorRalph Boehme <slow@samba.org>
Mon, 14 Dec 2020 14:39:37 +0000 (15:39 +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_extd_audit.c

index 9b231d76ed9bd8bfc782bd69757e6b730479c9a6..daf886728623c6b89acdd3c5fcb55cf04956eb82 100644 (file)
@@ -192,8 +192,17 @@ static int audit_mkdirat(vfs_handle_struct *handle,
                        const struct smb_filename *smb_fname,
                        mode_t mode)
 {
+       struct smb_filename *full_fname = NULL;
        int result;
 
+       full_fname = full_path_from_dirfsp_atname(talloc_tos(),
+                                                 dirfsp,
+                                                 smb_fname);
+       if (full_fname == NULL) {
+               errno = ENOMEM;
+               return -1;
+       }
+
        result = SMB_VFS_NEXT_MKDIRAT(handle,
                        dirfsp,
                        smb_fname,
@@ -201,15 +210,16 @@ static int audit_mkdirat(vfs_handle_struct *handle,
 
        if (lp_syslog() > 0) {
                syslog(audit_syslog_priority(handle), "mkdirat %s %s%s\n",
-                      smb_fname->base_name,
+                      full_fname->base_name,
                       (result < 0) ? "failed: " : "",
                       (result < 0) ? strerror(errno) : "");
        }
        DEBUG(0, ("vfs_extd_audit: mkdirat %s %s %s\n",
-              smb_fname->base_name,
+              full_fname->base_name,
               (result < 0) ? "failed: " : "",
               (result < 0) ? strerror(errno) : ""));
 
+       TALLOC_FREE(full_fname);
        return result;
 }