VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Common/libzip/zip_source_win32w.c
diff options
context:
space:
mode:
authorMounir IDRASSI <mounir.idrassi@idrix.fr>2020-03-09 10:34:21 (GMT)
committerMounir IDRASSI <mounir.idrassi@idrix.fr>2020-03-10 09:33:01 (GMT)
commitda370af54b419132d5f1e990f79b06ad8ebe66c0 (patch)
tree29749bc61bb0f74eb9601c98bb2431dd26c233a7 /src/Common/libzip/zip_source_win32w.c
parent7d110798d2ec1dae02310939c1bd6b036b90f6bf (diff)
downloadVeraCrypt-da370af54b419132d5f1e990f79b06ad8ebe66c0.zip
VeraCrypt-da370af54b419132d5f1e990f79b06ad8ebe66c0.tar.gz
Windows: Update libzip to 1.6.1
Diffstat (limited to 'src/Common/libzip/zip_source_win32w.c')
-rw-r--r--src/Common/libzip/zip_source_win32w.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/Common/libzip/zip_source_win32w.c b/src/Common/libzip/zip_source_win32w.c
index 4097214..cb8d64e 100644
--- a/src/Common/libzip/zip_source_win32w.c
+++ b/src/Common/libzip/zip_source_win32w.c
@@ -1,6 +1,6 @@
/*
zip_source_win32w.c -- create data source from Windows file (UTF-16)
- Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
@@ -136,8 +136,18 @@ _win32_create_temp_w(_zip_source_win32_read_file_t *ctx, void **temp, zip_uint32
static int
_win32_rename_temp_w(_zip_source_win32_read_file_t *ctx) {
+ DWORD attributes = GetFileAttributesW(ctx->tmpname);
+ if (INVALID_FILE_ATTRIBUTES == attributes)
+ return -1;
+
+ if (FILE_ATTRIBUTE_TEMPORARY & attributes) {
+ if (!SetFileAttributesW(ctx->tmpname, attributes & ~FILE_ATTRIBUTE_TEMPORARY))
+ return -1;
+ }
+
if (!MoveFileExW(ctx->tmpname, ctx->fname, MOVEFILE_REPLACE_EXISTING))
return -1;
+
return 0;
}