]> 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:44:25 +0000 (09:44 -0400)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 30 Mar 2012 13:44:25 +0000 (09:44 -0400)
to sudo_noexec.c.

--HG--
branch : 1.7

config.h.in
configure
configure.in
sudo_noexec.c

index c796855bcdc474397ffcbcf552a89f242649a432..cce0a7cba3dbc54922e46af24cb5f06400b9aebf 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 you have the <stdint.h> header file. */
 #undef HAVE_STDINT_H
 
index 2c159c40fa63005d69dd09921de5ec72b2c5f9ac..e4cdc97f93199fb1317379a9c1812ce55ac059d3 100755 (executable)
--- a/configure
+++ b/configure
@@ -15040,7 +15040,7 @@ $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
 
 fi
 
-for ac_header in malloc.h paths.h utime.h netgroup.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 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 09d9aea969eb4b643d95eff3b5368bd825a885c9..3e9243e6ba6a479e9dc9136e9d6a02d1991ee237 100644 (file)
@@ -1928,7 +1928,7 @@ dnl
 AC_HEADER_STDC
 AC_HEADER_DIRENT
 AC_HEADER_TIME
-AC_CHECK_HEADERS(malloc.h paths.h utime.h netgroup.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 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 1e5cad79f5d4f2ae16273b9f9236388acc720353..9eaa5d50744b621f628f98772fce0455512b6331 100644 (file)
@@ -27,6 +27,9 @@
 #else
 # include <varargs.h>
 #endif
+#ifdef HAVE_SPAWN_H
+# include <spawn.h>
+#endif
 
 #include "missing.h"
 
@@ -56,6 +59,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, ...)                          \
@@ -92,6 +100,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 *)
@@ -104,6 +115,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 */