crt: Check for NULL handle returned from wide WinAPI functions

On Win9x wide WinAPI functions return NULL handle (0) to indicate error
that function failed, instead of INVALID_HANDLE_VALUE handle (-1).

Signed-off-by: LIU Hao <lh_mouse@126.com>
diff --git a/mingw-w64-crt/stdio/_wfindfirst64.c b/mingw-w64-crt/stdio/_wfindfirst64.c
index e8b1c8d..b4f6cb0 100644
--- a/mingw-w64-crt/stdio/_wfindfirst64.c
+++ b/mingw-w64-crt/stdio/_wfindfirst64.c
@@ -19,7 +19,7 @@
     HANDLE handle;
 
     handle = FindFirstFileW(path, &win32_find_data);
-    win32_find_data_to_crt_find_data(handle != INVALID_HANDLE_VALUE, &win32_find_data, find_data);
+    win32_find_data_to_crt_find_data(handle != NULL && handle != INVALID_HANDLE_VALUE, &win32_find_data, find_data);
     return (intptr_t)handle;
 }
 
diff --git a/mingw-w64-crt/stdio/_wstat32.c b/mingw-w64-crt/stdio/_wstat32.c
index 6b0ac1b..a3524e4 100644
--- a/mingw-w64-crt/stdio/_wstat32.c
+++ b/mingw-w64-crt/stdio/_wstat32.c
@@ -66,7 +66,7 @@
   int err;
   HANDLE handle;
   handle = CreateFileW(_Name, FILE_READ_ATTRIBUTES, FILE_SHARE_VALID_FLAGS, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
-  if (handle == INVALID_HANDLE_VALUE) {
+  if (handle == NULL || handle == INVALID_HANDLE_VALUE) {
     switch (GetLastError()) {
     case ERROR_PATH_NOT_FOUND:
     case ERROR_FILE_NOT_FOUND:
diff --git a/mingw-w64-crt/stdio/_wstat64.c b/mingw-w64-crt/stdio/_wstat64.c
index 1ffaf62..c764daa 100644
--- a/mingw-w64-crt/stdio/_wstat64.c
+++ b/mingw-w64-crt/stdio/_wstat64.c
@@ -25,7 +25,7 @@
     stat->st_gid = st.st_gid;
     stat->st_rdev = st.st_rdev;
     handle = FindFirstFileW(path, &fi);
-    if (handle != INVALID_HANDLE_VALUE) {
+    if (handle != NULL && handle != INVALID_HANDLE_VALUE) {
         FindClose(handle);
         stat->st_size = ((_off64_t)fi.nFileSizeHigh << 32) | fi.nFileSizeLow;
         stat->st_atime = filetime_to_time64(&fi.ftLastAccessTime);