aboutsummaryrefslogtreecommitdiffstats
path: root/shells
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2001-03-17 09:24:32 +0800
committerobrien <obrien@FreeBSD.org>2001-03-17 09:24:32 +0800
commita98268bc949b8c53b0ada8e3902f3cc8c5055a7b (patch)
treea12eed9eb44c943140072378288cc4f5cbb321a7 /shells
parent19020430468579a6e9f3250f3175826eb6d9bf0b (diff)
downloadfreebsd-ports-gnome-a98268bc949b8c53b0ada8e3902f3cc8c5055a7b.tar.gz
freebsd-ports-gnome-a98268bc949b8c53b0ada8e3902f3cc8c5055a7b.tar.zst
freebsd-ports-gnome-a98268bc949b8c53b0ada8e3902f3cc8c5055a7b.zip
Fix a segmentation fault on the Alpha.
As shown with this script : m(){ if [ $1 -eq 1 ];then echo $2 $3;else m $(($1-1)) $2 $4 $3;m 1 $2 \ $3 $4;m $(($1-1)) $4 $3 $2;fi;};if [ $# -eq 3 ]&&[ $3 -ge 1 -a $1 -le \ 3 -a $1 -ge 1 -a $2 -le 3 -a $2 -ge 1 -a $1 -ne $2 ];then m $3 $1 $2 $\ ((6-$1-$2)); else echo Usage: /bin/sh hanoi.sh from to num; fi #by rhb $ bash2 hanoi.sh 1 2 3 1 2 1 3 Segmentation fault (core dumped) Submitted by: Christian Weisgerber <naddy@mips.inka.de>
Diffstat (limited to 'shells')
-rw-r--r--shells/bash/files/patch-execute_cmd.c20
-rw-r--r--shells/bash2/files/patch-execute_cmd.c20
-rw-r--r--shells/bash3/files/patch-execute_cmd.c20
3 files changed, 60 insertions, 0 deletions
diff --git a/shells/bash/files/patch-execute_cmd.c b/shells/bash/files/patch-execute_cmd.c
new file mode 100644
index 000000000000..e50bfb5bd1e0
--- /dev/null
+++ b/shells/bash/files/patch-execute_cmd.c
@@ -0,0 +1,20 @@
+--- execute_cmd.c.shellfunc Tue Jan 25 11:29:11 2000
++++ execute_cmd.c Tue May 2 21:26:24 2000
+@@ -2762,6 +2762,8 @@
+ if (tc && (flags & CMD_IGNORE_RETURN))
+ tc->flags |= CMD_IGNORE_RETURN;
+
++ old_shell_function = this_shell_function;
++
+ if (subshell == 0)
+ {
+ begin_unwind_frame ("function_calling");
+@@ -2843,6 +2845,8 @@
+
+ if (variable_context == 0 || this_shell_function == 0)
+ make_funcname_visible (0);
++
++ this_shell_function = old_shell_function;
+
+ return (result);
+ }
diff --git a/shells/bash2/files/patch-execute_cmd.c b/shells/bash2/files/patch-execute_cmd.c
new file mode 100644
index 000000000000..e50bfb5bd1e0
--- /dev/null
+++ b/shells/bash2/files/patch-execute_cmd.c
@@ -0,0 +1,20 @@
+--- execute_cmd.c.shellfunc Tue Jan 25 11:29:11 2000
++++ execute_cmd.c Tue May 2 21:26:24 2000
+@@ -2762,6 +2762,8 @@
+ if (tc && (flags & CMD_IGNORE_RETURN))
+ tc->flags |= CMD_IGNORE_RETURN;
+
++ old_shell_function = this_shell_function;
++
+ if (subshell == 0)
+ {
+ begin_unwind_frame ("function_calling");
+@@ -2843,6 +2845,8 @@
+
+ if (variable_context == 0 || this_shell_function == 0)
+ make_funcname_visible (0);
++
++ this_shell_function = old_shell_function;
+
+ return (result);
+ }
diff --git a/shells/bash3/files/patch-execute_cmd.c b/shells/bash3/files/patch-execute_cmd.c
new file mode 100644
index 000000000000..e50bfb5bd1e0
--- /dev/null
+++ b/shells/bash3/files/patch-execute_cmd.c
@@ -0,0 +1,20 @@
+--- execute_cmd.c.shellfunc Tue Jan 25 11:29:11 2000
++++ execute_cmd.c Tue May 2 21:26:24 2000
+@@ -2762,6 +2762,8 @@
+ if (tc && (flags & CMD_IGNORE_RETURN))
+ tc->flags |= CMD_IGNORE_RETURN;
+
++ old_shell_function = this_shell_function;
++
+ if (subshell == 0)
+ {
+ begin_unwind_frame ("function_calling");
+@@ -2843,6 +2845,8 @@
+
+ if (variable_context == 0 || this_shell_function == 0)
+ make_funcname_visible (0);
++
++ this_shell_function = old_shell_function;
+
+ return (result);
+ }