Download | Plain Text | Line Numbers
diff -Naur bash-4.2.orig/execute_cmd.c bash-4.2/execute_cmd.c
--- bash-4.2.orig/execute_cmd.c 2014-11-14 19:32:13.985931788 +0100
+++ bash-4.2/execute_cmd.c 2014-11-14 19:33:34.085291416 +0100
@@ -4654,7 +4654,9 @@
result = EXECUTION_SUCCESS;
#if defined (RESTRICTED_SHELL)
command = (char *)NULL;
- if (restricted && mbschr (pathname, '/'))
+ if (restricted && php)
+ pathname = base_pathname (pathname);
+ else if (restricted && mbschr (pathname, '/'))
{
internal_error (_("%s: restricted: cannot specify `/' in command names"),
pathname);
diff -Naur bash-4.2.orig/flags.c bash-4.2/flags.c
--- bash-4.2.orig/flags.c 2009-01-04 20:32:29.000000000 +0100
+++ bash-4.2/flags.c 2014-11-14 19:33:12.854931035 +0100
@@ -139,6 +139,7 @@
output redirection. */
int restricted = 0; /* currently restricted */
int restricted_shell = 0; /* shell was started in restricted mode. */
+int php = 0;
#endif /* RESTRICTED_SHELL */
/* Non-zero means that this shell is running in `privileged' mode. This
diff -Naur bash-4.2.orig/flags.h bash-4.2/flags.h
--- bash-4.2.orig/flags.h 2009-01-04 20:32:29.000000000 +0100
+++ bash-4.2/flags.h 2014-11-14 19:33:12.854931035 +0100
@@ -64,6 +64,7 @@
#if defined (RESTRICTED_SHELL)
extern int restricted;
extern int restricted_shell;
+extern int php;
#endif /* RESTRICTED_SHELL */
extern int *find_flag __P((int));
diff -Naur bash-4.2.orig/redir.c bash-4.2/redir.c
--- bash-4.2.orig/redir.c 2014-11-14 19:32:14.080933400 +0100
+++ bash-4.2/redir.c 2014-11-14 19:33:12.854931035 +0100
@@ -801,7 +801,7 @@
return (AMBIGUOUS_REDIRECT);
#if defined (RESTRICTED_SHELL)
- if (restricted && (WRITE_REDIRECT (ri)))
+ if (restricted && !php && (WRITE_REDIRECT (ri)))
{
free (redirectee_word);
return (RESTRICTED_REDIRECT);
diff -Naur bash-4.2.orig/shell.c bash-4.2/shell.c
--- bash-4.2.orig/shell.c 2011-01-02 22:04:51.000000000 +0100
+++ bash-4.2/shell.c 2014-11-14 19:33:12.855931052 +0100
@@ -252,6 +252,7 @@
{ "rcfile", Charp, (int *)0x0, &bashrc_file },
#if defined (RESTRICTED_SHELL)
{ "restricted", Int, &restricted, (char **)0x0 },
+ { "php", Int, &php, (char **)0x0 },
#endif
{ "verbose", Int, &echo_input_at_read, (char **)0x0 },
{ "version", Int, &do_version, (char **)0x0 },