projects
/
oweals
/
musl.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
0fa1e63
)
implement fexecve in terms of execveat when it exists
author
Joseph C. Sible
<josephcsible@gmail.com>
Sun, 2 Sep 2018 17:42:26 +0000
(13:42 -0400)
committer
Rich Felker
<dalias@aerifal.cx>
Tue, 4 Sep 2018 23:26:52 +0000
(19:26 -0400)
This lets fexecve work even when /proc isn't mounted.
src/process/fexecve.c
patch
|
blob
|
history
diff --git
a/src/process/fexecve.c
b/src/process/fexecve.c
index 6507b42949c915e757bfa71935388a0ea4e0a15d..8be3f760ff7ad8ef5df760fc40a46ec3d722be3a 100644
(file)
--- a/
src/process/fexecve.c
+++ b/
src/process/fexecve.c
@@
-1,10
+1,15
@@
+#define _GNU_SOURCE
#include <unistd.h>
#include <errno.h>
+#include <fcntl.h>
+#include "syscall.h"
void __procfdname(char *, unsigned);
int fexecve(int fd, char *const argv[], char *const envp[])
{
+ int r = __syscall(SYS_execveat, fd, "", argv, envp, AT_EMPTY_PATH);
+ if (r != -ENOSYS) return __syscall_ret(r);
char buf[15 + 3*sizeof(int)];
__procfdname(buf, fd);
execve(buf, argv, envp);