2009-08-28 17:45:57 +02:00
|
|
|
Index: execute_cmd.c
|
|
|
|
===================================================================
|
|
|
|
--- execute_cmd.c.orig
|
|
|
|
+++ execute_cmd.c
|
|
|
|
@@ -25,6 +25,7 @@
|
2008-04-25 15:34:05 +02:00
|
|
|
#endif /* _AIX && RISC6000 && !__GNUC__ */
|
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
+#include <paths.h>
|
|
|
|
#include "chartypes.h"
|
|
|
|
#include "bashtypes.h"
|
|
|
|
#if !defined (_MINIX) && defined (HAVE_SYS_FILE_H)
|
2009-08-28 17:45:57 +02:00
|
|
|
@@ -4764,6 +4765,23 @@ shell_execve (command, args, env)
|
2008-04-25 15:34:05 +02:00
|
|
|
/* We have committed to attempting to execute the contents of this file
|
|
|
|
as shell commands. */
|
|
|
|
|
|
|
|
+#if 1
|
|
|
|
+ larray = strvec_len(args) + 1;
|
|
|
|
+ args = strvec_resize(args, larray + 1);
|
|
|
|
+
|
2008-04-28 15:52:28 +02:00
|
|
|
+ for (i = larray - 1; i; i--)
|
|
|
|
+ args[i] = args[i - 1];
|
|
|
|
+
|
2008-04-25 15:34:05 +02:00
|
|
|
+ args[0] = savestring(_PATH_BSHELL);
|
|
|
|
+ args[1] = command;
|
|
|
|
+ args[larray] = (char *)0;
|
|
|
|
+
|
|
|
|
+ SETOSTYPE (0); /* Some systems use for USG/POSIX semantics */
|
|
|
|
+ execve ("/bin/sh", args, env);
|
|
|
|
+ SETOSTYPE (1);
|
|
|
|
+
|
|
|
|
+ internal_error (_("%s: cannot execute: %s"), command, strerror (errno));
|
|
|
|
+#else
|
|
|
|
initialize_subshell ();
|
|
|
|
|
|
|
|
set_sigint_handler ();
|
2009-08-28 17:45:57 +02:00
|
|
|
@@ -4806,6 +4824,8 @@ shell_execve (command, args, env)
|
2008-04-25 15:34:05 +02:00
|
|
|
|
|
|
|
longjmp (subshell_top_level, 1);
|
|
|
|
/*NOTREACHED*/
|
|
|
|
+#endif
|
|
|
|
+ return (EX_NOEXEC);
|
|
|
|
}
|
|
|
|
|
|
|
|
static int
|