Fix bugs causing creation of new zip files to fail on Win32.
diff --git a/lib/zip_source_win32file.c b/lib/zip_source_win32file.c
index 5212ef3..ee8319e 100644
--- a/lib/zip_source_win32file.c
+++ b/lib/zip_source_win32file.c
@@ -119,7 +119,7 @@
HANDLE th;
th = ops->op_open(ctx);
- if (th != INVALID_HANDLE_VALUE && GetFileType(th) == FILE_TYPE_DISK) {
+ if (th == INVALID_HANDLE_VALUE || GetFileType(th) == FILE_TYPE_DISK) {
ctx->supports = ZIP_SOURCE_SUPPORTS_WRITABLE;
}
if (th != INVALID_HANDLE_VALUE) {
@@ -345,6 +345,10 @@
}
else {
h = ctx->ops->op_open(ctx);
+ if (h == INVALID_HANDLE_VALUE && GetLastError() == ERROR_FILE_NOT_FOUND) {
+ zip_error_set(&ctx->error, ZIP_ER_READ, ENOENT);
+ return -1;
+ }
}
success = _zip_stat_win32(h, st, ctx);