Fix handle leak.

Next set of debug printfs.
diff --git a/lib/zip_source_file_win32_utf16.c b/lib/zip_source_file_win32_utf16.c
index 87f1313..a225d1c 100644
--- a/lib/zip_source_file_win32_utf16.c
+++ b/lib/zip_source_file_win32_utf16.c
@@ -94,7 +94,7 @@
     
     return CreateFile2((const wchar_t *)name, access, share_mode, creation_disposition, &extParams);
 #else
-    wprintf(L"CreateFileW(\"%s\", %d, %d, %d, %p, %d)\n", (const wchar_t *)name, (int)access, (int)share_mode, (int)creation_disposition, security_attributes, (int)file_attributes);
+    // wprintf(L"CreateFileW(\"%s\", %d, %d, %d, %p, %d)\n", (const wchar_t *)name, (int)access, (int)share_mode, (int)creation_disposition, security_attributes, (int)file_attributes);
     return CreateFileW((const wchar_t *)name, access, share_mode, security_attributes, creation_disposition, file_attributes, template_file);
 #endif
 }
@@ -119,7 +119,7 @@
 
 static BOOL
 utf16_move_file(const char *from, const char *to, DWORD flags) {
-    wprintf(L"MoveFileExW(\"%s\", \"%s\", %d)\n", (const wchar_t *)from, (const wchar_t *)to, (int)flags);
+    // wprintf(L"MoveFileExW(\"%s\", \"%s\", %d)\n", (const wchar_t *)from, (const wchar_t *)to, (int)flags);
     return MoveFileExW((const wchar_t *)from, (const wchar_t *)to, flags);
 }
 
diff --git a/lib/zip_source_file_win32_write.c b/lib/zip_source_file_win32_write.c
index fa2f71e..c19ec92 100644
--- a/lib/zip_source_file_win32_write.c
+++ b/lib/zip_source_file_win32_write.c
@@ -194,12 +194,18 @@
 static bool
 _zip_win32_write_op_stat(zip_source_file_context_t *ctx, zip_source_file_stat_t *st) {
     HANDLE h = win32_write_open(ctx, ctx->fname, false, NULL);
+    bool ok;
     
     if (h == INVALID_HANDLE_VALUE) {
+        printf("open in stat failed\n");
         return false;
     }
 
-    return _zip_stat_win32(ctx, st, h);
+    ok = _zip_stat_win32(ctx, st, h);
+    
+    CloseHandle(h);
+    
+    return ok;
 }