ecore_file_can_exec: fix .bat case
authorVincent Torri <vincent.torri@gmail.com>
Mon, 31 Aug 2020 13:46:51 +0000 (13:46 +0000)
committerJongmin Lee <jm105.lee@samsung.com>
Tue, 1 Sep 2020 21:22:46 +0000 (06:22 +0900)
the test on the .bat file was too early

Reviewed-by: João Paulo Taylor Ienczak Zanette <joao.tiz@expertisesolutions.com.br>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12122

src/lib/ecore_file/ecore_file.c

index d1d9d2bedef70ffe830374ae123b0f67d42bfdfd..2e43336f0af59689a5bc776b3db6a082638c15d4 100644 (file)
@@ -661,7 +661,7 @@ ecore_file_can_exec(const char *file)
    h = CreateFile(file, GENERIC_READ, FILE_SHARE_READ, NULL,
                   OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
    if (h == INVALID_HANDLE_VALUE)
-     return EINA_FALSE;
+     goto test_bat;
 
    if (!GetFileSizeEx(h, &sz))
      goto close_h;
@@ -715,16 +715,16 @@ ecore_file_can_exec(const char *file)
     */
    if ((characteristics & 0x0002) && !(characteristics & 0x2000))
      return EINA_TRUE;
-
+ unmap_view:
+   UnmapViewOfFile(base);
+ close_h:
+   CloseHandle(h);
+ test_bat:
    /*
     * a .bat file, considered as an executable, is only a text file,
     * so we rely on the extension. Not the best but we cannot do more.
     */
    return eina_str_has_extension(file, ".bat");
- unmap_view:
-   UnmapViewOfFile(base);
- close_h:
-   CloseHandle(h);
 #else
    if (!access(file, X_OK)) return EINA_TRUE;
 #endif