]> granicus.if.org Git - sudo/commitdiff
Add execvpe(), exect(), posix_spawn() and posix_spawnp() wrappers
authorTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 30 Mar 2012 13:36:30 +0000 (09:36 -0400)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 30 Mar 2012 13:36:30 +0000 (09:36 -0400)
to sudo_noexec.c.

config.h.in
configure
configure.in
src/sudo_noexec.c

index 0ce4afc5bd67ebb9e5a82f6cbefa29c0a0fbf675..7be0d1a9d7dcad7161f7e21b18d8ba5f696f560f 100644 (file)
 /* Define to 1 if you have the `snprintf' function. */
 #undef HAVE_SNPRINTF
 
+/* Define to 1 if you have the <spawn.h> header file. */
+#undef HAVE_SPAWN_H
+
 /* Define to 1 if stdbool.h conforms to C99. */
 #undef HAVE_STDBOOL_H
 
index 21e2647ad58793fd664e6d8e28d2f73c844124fc..083d2cb976b9fb3de67f34c852d726f2e6a34a5c 100755 (executable)
--- a/configure
+++ b/configure
@@ -15235,7 +15235,7 @@ $as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h
 
 fi
 
-for ac_header in malloc.h paths.h utime.h netgroup.h utmpx.h sys/sockio.h sys/bsdtypes.h sys/select.h sys/stropts.h sys/sysmacros.h
+for ac_header in malloc.h netgroup.h paths.h spawn.h utime.h utmpx.h sys/sockio.h sys/bsdtypes.h sys/select.h sys/stropts.h sys/sysmacros.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
index a5f28c377e7edd06076f46919d5e1f93944aca59..58f771097d8c1a00c443d01add1a9d00cd4acd1a 100644 (file)
@@ -2006,7 +2006,7 @@ AC_HEADER_STDC
 AC_HEADER_DIRENT
 AC_HEADER_TIME
 AC_HEADER_STDBOOL
-AC_CHECK_HEADERS(malloc.h paths.h utime.h netgroup.h utmpx.h sys/sockio.h sys/bsdtypes.h sys/select.h sys/stropts.h sys/sysmacros.h)
+AC_CHECK_HEADERS(malloc.h netgroup.h paths.h spawn.h utime.h utmpx.h sys/sockio.h sys/bsdtypes.h sys/select.h sys/stropts.h sys/sysmacros.h)
 dnl
 dnl Check for large file support.  HP-UX 11.23 has a broken sys/type.h
 dnl when large files support is enabled so work around it.
index 4e05720deea47ac15e5931092b641eef27247512..af1915f03cf640fecd5629c98aed4140c6cbd163 100644 (file)
@@ -20,6 +20,9 @@
 
 #include <errno.h>
 #include <stdarg.h>
+#ifdef HAVE_SPAWN_H
+#include <spawn.h>
+#endif
 
 #include "missing.h"
 
@@ -47,6 +50,11 @@ int                                          \
 fn(t1 a1, t2 a2, t3 a3)                                \
 DUMMY_BODY
 
+#define DUMMY6(fn, t1, t2, t3, t4, t5, t6)     \
+int                                            \
+fn(t1 a1, t2 a2, t3 a3, t4 a4, t5 a5, t6 a6)   \
+DUMMY_BODY
+
 #define DUMMY_VA(fn, t1, t2)                   \
 int                                            \
 fn(t1 a1, t2 a2, ...)                          \
@@ -61,6 +69,9 @@ DUMMY_VA(__execle, const char *, const char *)
 DUMMY_VA(execlp, const char *, const char *)
 DUMMY_VA(_execlp, const char *, const char *)
 DUMMY_VA(__execlp, const char *, const char *)
+DUMMY3(exect, const char *, char * const *, char * const *)
+DUMMY3(_exect, const char *, char * const *, char * const *)
+DUMMY3(__exect, const char *, char * const *, char * const *)
 DUMMY2(execv, const char *, char * const *)
 DUMMY2(_execv, const char *, char * const *)
 DUMMY2(__execv, const char *, char * const *)
@@ -73,6 +84,17 @@ DUMMY3(__execvP, const char *, const char *, char * const *)
 DUMMY3(execve, const char *, char * const *, char * const *)
 DUMMY3(_execve, const char *, char * const *, char * const *)
 DUMMY3(__execve, const char *, char * const *, char * const *)
+DUMMY3(execvpe, const char *, char * const *, char * const *)
+DUMMY3(_execvpe, const char *, char * const *, char * const *)
+DUMMY3(__execvpe, const char *, char * const *, char * const *)
 DUMMY3(fexecve, int , char * const *, char * const *)
 DUMMY3(_fexecve, int , char * const *, char * const *)
 DUMMY3(__fexecve, int , char * const *, char * const *)
+#ifdef HAVE_SPAWN_H
+DUMMY6(posix_spawn, pid_t *, const char *, const posix_spawn_file_actions_t *, const posix_spawnattr_t *, char * const *, char * const *)
+DUMMY6(_posix_spawn, pid_t *, const char *, const posix_spawn_file_actions_t *, const posix_spawnattr_t *, char * const *, char * const *)
+DUMMY6(__posix_spawn, pid_t *, const char *, const posix_spawn_file_actions_t *, const posix_spawnattr_t *, char * const *, char * const *)
+DUMMY6(posix_spawnp, pid_t *, const char *, const posix_spawn_file_actions_t *, const posix_spawnattr_t *, char * const *, char * const *)
+DUMMY6(_posix_spawnp, pid_t *, const char *, const posix_spawn_file_actions_t *, const posix_spawnattr_t *, char * const *, char * const *)
+DUMMY6(__posix_spawnp, pid_t *, const char *, const posix_spawn_file_actions_t *, const posix_spawnattr_t *, char * const *, char * const *)
+#endif /* HAVE_SPAWN_H */