Loading...
--- Libc/Libc-763.13/gen/FreeBSD/exec.c
+++ Libc/Libc-1534.100.14/gen/FreeBSD/exec.c
@@ -48,7 +48,11 @@
#include "un-namespace.h"
#include "libc_private.h"
-extern char **environ;
+#include <crt_externs.h>
+#define environ (*_NSGetEnviron())
+
+int
+_execvpe(const char *name, char * const argv[], char * const envp[]);
int
execl(const char *name, const char *arg, ...)
@@ -259,8 +263,9 @@
}
if (eacces)
errno = EACCES;
- else
+ else if (cur)
errno = ENOENT;
+ /* else use existing errno from _execve */
done:
return (-1);
}
@@ -271,7 +276,7 @@
return execvPe(name, path, argv, environ);
}
-int
+__private_extern__ int
_execvpe(const char *name, char * const argv[], char * const envp[])
{
const char *path;