Set zip_error in stat function.
diff --git a/lib/zip_source_win32file.c b/lib/zip_source_win32file.c
index 2523fab..46bf671 100644
--- a/lib/zip_source_win32file.c
+++ b/lib/zip_source_win32file.c
@@ -514,7 +514,12 @@
LARGE_INTEGER size;
int regularp;
- if (!GetFileTime(h, NULL, NULL, &mtimeft) || _zip_filetime_to_time_t(mtimeft, &mtime) < 0) {
+ if (!GetFileTime(h, NULL, NULL, &mtimeft)) {
+ zip_error_set(&ctx->error, ZIP_ER_READ, _zip_set_win32_error(GetLastError(), NULL));
+ return -1;
+ }
+ if (_zip_filetime_to_time_t(mtimeft, &mtime) < 0) {
+ zip_error_set(&ctx->error, ZIP_ER_READ, ERANGE);
return -1;
}
@@ -524,6 +529,7 @@
}
if (!GetFileSizeEx(h, &size)) {
+ zip_error_set(&ctx->error, ZIP_ER_READ, _zip_set_win32_error(GetLastError(), NULL));
return -1;
}