Retry process execution in case of ENOTDIR
authorIku Iwasa <iku.iwasa@gmail.com>
Sat, 2 Aug 2014 13:02:23 +0000 (22:02 +0900)
committerHerbert Valerio Riedel <hvr@gnu.org>
Sat, 6 Dec 2014 14:55:27 +0000 (15:55 +0100)
If `PATH` environment variable contains non directory component,
`__hsunix_execvpe()` failed by `ENOTDIR`.

This fixes #11 for all platforms.

cbits/execvpe.c
changelog.md

index 8c9d52d..b4f9472 100644 (file)
@@ -129,6 +129,7 @@ __hsunix_execvpe(const char *name, char *const argv[], char *const envp[])
        case EACCES:
            eacces = 1;
            break;
+       case ENOTDIR:
        case ENOENT:
            break;
        case ENOEXEC:
index d5100cf..b7dafcd 100644 (file)
@@ -14,6 +14,9 @@
 
   * Use CAPI FFI import for `truncate` to make sure the LFS-version is used.
 
+  * `executeFile`: Fix `ENOTDIR` error for entries with non-directory
+    components in `PATH` (and instead skip over non-directory `PATH`-elements)
+
 ## 2.7.0.1  *Mar 2014*
 
   * Bundled with GHC 7.8.1