]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
vfs_shadow_copy2: support real dirfsps in shadow_copy2_mkdirat()
authorRalph Boehme <slow@samba.org>
Mon, 14 Dec 2020 14:53:33 +0000 (15:53 +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_shadow_copy2.c

index 6e4ed60630974410f5e87bf558f02a0897fd8a0b..227ac148260c701b4757a8e096b8e27bdabae604 100644 (file)
@@ -2194,15 +2194,25 @@ static int shadow_copy2_mkdirat(vfs_handle_struct *handle,
                                const struct smb_filename *smb_fname,
                                mode_t mode)
 {
+       struct smb_filename *full_fname = NULL;
        time_t timestamp = 0;
 
+       full_fname = full_path_from_dirfsp_atname(talloc_tos(),
+                                                 dirfsp,
+                                                 smb_fname);
+       if (full_fname == NULL) {
+               errno = ENOMEM;
+               return -1;
+       }
+
        if (!shadow_copy2_strip_snapshot(talloc_tos(),
                                        handle,
-                                       smb_fname,
+                                       full_fname,
                                        &timestamp,
                                        NULL)) {
                return -1;
        }
+       TALLOC_FREE(full_fname);
        if (timestamp != 0) {
                errno = EROFS;
                return -1;