]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3: VFS: shadow_copy2: Code cleanup. In shadow_copy2_get_shadow_copy_data() preserve...
authorJeremy Allison <jra@samba.org>
Mon, 7 Jun 2021 16:44:23 +0000 (09:44 -0700)
committerRalph Boehme <slow@samba.org>
Wed, 9 Jun 2021 13:14:29 +0000 (13:14 +0000)
This VFS function should really return an NTSTATUS but that is
a patch for another day.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
source3/modules/vfs_shadow_copy2.c

index 574b60c5a6426be8670a438214150fb4ad4a7a15..45b1ede87c828070b4b74b9a8f671b3cc244f177 100644 (file)
@@ -1977,6 +1977,7 @@ static int shadow_copy2_get_shadow_copy_data(
        int fd;
        int ret = -1;
        NTSTATUS status;
+       int saved_errno = 0;
 
        snapdir = shadow_copy2_find_snapdir(tmp_ctx, handle, fsp->fsp_name);
        if (snapdir == NULL) {
@@ -2136,6 +2137,9 @@ static int shadow_copy2_get_shadow_copy_data(
        ret = 0;
 
 done:
+       if (ret != 0) {
+               saved_errno = errno;
+       }
        TALLOC_FREE(fspcwd );
        if (p != NULL) {
                SMB_VFS_NEXT_CLOSEDIR(handle, p);
@@ -2153,6 +2157,9 @@ done:
                file_free(NULL, dirfsp);
        }
        TALLOC_FREE(tmp_ctx);
+       if (saved_errno != 0) {
+               errno = saved_errno;
+       }
        return ret;
 }