fix usage of locks with vfork
[musl] / src / process / posix_spawnp.c
index 7434bb6..3736000 100644 (file)
@@ -1,14 +1,17 @@
 #include <spawn.h>
 #include <unistd.h>
 
-int __posix_spawnx(pid_t *, const char *,
-       int (*)(const char *, char *const *),
+int __execvpe(const char *, char *const *, char *const *);
+
+int __posix_spawnx(pid_t *restrict, const char *restrict,
+       int (*)(const char *, char *const *, char *const *),
        const posix_spawn_file_actions_t *,
-       const posix_spawnattr_t *, char **, char **);
+       const posix_spawnattr_t *restrict, char *const *restrict, char *const *restrict);
 
-int posix_spawnp(pid_t *res, const char *file,
+int posix_spawnp(pid_t *restrict res, const char *restrict file,
        const posix_spawn_file_actions_t *fa,
-       const posix_spawnattr_t *attr, char **argv, char **envp)
+       const posix_spawnattr_t *restrict attr,
+       char *const argv[restrict], char *const envp[restrict])
 {
-       return __posix_spawnx(res, file, execvp, fa, attr, argv, envp);
+       return __posix_spawnx(res, file, __execvpe, fa, attr, argv, envp);
 }