diff --git a/bash-4.3-async-bnc971410.dif b/bash-4.3-async-bnc971410.dif new file mode 100644 index 0000000..a7ec7f1 --- /dev/null +++ b/bash-4.3-async-bnc971410.dif @@ -0,0 +1,25 @@ +This is a backport from bash-4.4-rc1 and might help to avoid to run +onto a not existing child pointer, bnc#971410. + +--- + jobs.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- jobs.c ++++ jobs.c 2016-04-01 08:32:53.898981856 +0000 +@@ -2564,12 +2564,12 @@ itrace("wait_for: blocking wait for %d r + of the last child in the pipeline is the significant one. If the command + or job was terminated by a signal, note that value also. */ + termination_state = (job != NO_JOB) ? job_exit_status (job) +- : process_exit_status (child->status); ++ : (child ? process_exit_status (child->status) : EXECUTION_SUCCESS); + last_command_exit_signal = (job != NO_JOB) ? job_exit_signal (job) +- : process_exit_signal (child->status); ++ : (child ? process_exit_signal (child->status) : 0); + + /* XXX */ +- if ((job != NO_JOB && JOBSTATE (job) == JSTOPPED) || WIFSTOPPED (child->status)) ++ if ((job != NO_JOB && JOBSTATE (job) == JSTOPPED) || (child && WIFSTOPPED (child->status))) + termination_state = 128 + WSTOPSIG (child->status); + + if (job == NO_JOB || IS_JOBCONTROL (job)) diff --git a/bash.changes b/bash.changes index 018bde9..cdf02f2 100644 --- a/bash.changes +++ b/bash.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Apr 1 08:38:48 UTC 2016 - werner@suse.de + +- Add patch bash-4.3-async-bnc971410.dif + this is a backport from bash-4.4-rc1 and might help to avoid to + run onto a not existing child pointer, bnc#971410. + ------------------------------------------------------------------- Mon Oct 19 13:38:58 UTC 2015 - werner@suse.de diff --git a/bash.spec b/bash.spec index 3ff9908..8e0a860 100644 --- a/bash.spec +++ b/bash.spec @@ -1,7 +1,7 @@ # # spec file for package bash # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -101,6 +101,8 @@ Patch47: bash-4.3-perl522.patch Patch48: bash-4.3-extra-import-func.patch # PATCH-EXTEND-SUSE Allow root to clean file system if filled up Patch49: bash-4.3-pathtemp.patch +# PATCH-FIX-UPSTREAM bnc#971410 -- bash script teminates unexpectedly throwing backtrace +Patch50: bash-4.3-async-bnc971410.dif BuildRoot: %{_tmppath}/%{name}-%{version}-build %global _sysconfdir /etc %global _incdir %{_includedir} @@ -322,6 +324,7 @@ done %patch48 %endif %patch49 +%patch50 %patch0 -p0 -b .0 pushd ../readline-%{rl_vers}%{extend} for patch in ../readline-%{rl_vers}-patches/*; do @@ -600,6 +603,7 @@ popd ln -sf bash %{buildroot}/bin/sh ln -sf ../../bin/bash %{buildroot}%{_bindir}/sh %endif +install -m 755 bash %{buildroot}/bin/bash ln -sf ../../bin/bash %{buildroot}%{_bindir}/rbash install -m 644 COMPAT NEWS %{buildroot}%{_defaultdocdir}/bash/ install -m 644 COPYING %{buildroot}%{_defaultdocdir}/bash/ @@ -673,7 +677,7 @@ ldd -u -r %{buildroot}/%{_lib}/libreadline.so.* || true %config %attr(600,root,root) %{_sysconfdir}/skel/.bash_history %config %attr(644,root,root) %{_sysconfdir}/skel/.bashrc %config %attr(644,root,root) %{_sysconfdir}/skel/.profile -/bin/bash +%attr(755,root,root) /bin/bash /bin/sh %dir %{_sysconfdir}/bash_completion.d %{_bindir}/bashbug