[ksh/f17] do not hang after return code 12

Michal Hlavinka mhlavink at fedoraproject.org
Mon Mar 19 11:01:03 UTC 2012


commit 0932fb2a15f91b2333d59ef13c27fcafcc26cd62
Author: Michal Hlavinka <mhlavink at redhat.com>
Date:   Mon Mar 19 12:00:56 2012 +0100

    do not hang after return code 12

 ksh-20120229-rc12hang.patch |   21 +++++++++++++++++++++
 ksh.spec                    |    8 +++++++-
 2 files changed, 28 insertions(+), 1 deletions(-)
---
diff --git a/ksh-20120229-rc12hang.patch b/ksh-20120229-rc12hang.patch
new file mode 100644
index 0000000..49cef4a
--- /dev/null
+++ b/ksh-20120229-rc12hang.patch
@@ -0,0 +1,21 @@
+diff -up ksh-20120229/src/cmd/ksh93/sh/xec.c.rc12hang ksh-20120229/src/cmd/ksh93/sh/xec.c
+--- ksh-20120229/src/cmd/ksh93/sh/xec.c.rc12hang	2012-03-02 17:37:09.000000000 +0100
++++ ksh-20120229/src/cmd/ksh93/sh/xec.c	2012-03-19 11:29:41.002964239 +0100
+@@ -1623,7 +1623,7 @@ int sh_exec(register const Shnode_t *t,
+ 					else
+ 						job_wait(parent);
+ 					if(shp->topfd > topfd)
+-						sh_iorestore(shp,topfd,sh.exitval);
++						sh_iorestore(shp,topfd,0);
+ 					if(usepipe && tsetio &&  subdup)
+ 						iounpipe(shp);
+ 					if(!sh_isoption(SH_MONITOR))
+@@ -3079,7 +3079,7 @@ pid_t _sh_fork(Shell_t *shp,register pid
+ 			if(!tsetio || !subdup)
+ 			{
+ 				if(shp->topfd > restorefd)
+-					sh_iorestore(shp,restorefd,sh.exitval);
++					sh_iorestore(shp,restorefd,0);
+ 				iounpipe(shp);
+ 			}
+ 		}
diff --git a/ksh.spec b/ksh.spec
index 6d5cb58..4cb9ae7 100644
--- a/ksh.spec
+++ b/ksh.spec
@@ -6,7 +6,7 @@ URL:          http://www.kornshell.com/
 Group:        System Environment/Shells
 License:      EPL
 Version:      20120229
-Release:      1%{?dist}
+Release:      2%{?dist}
 Source0:      http://www.research.att.com/~gsf/download/tgz/ast-ksh.%{releasedate}.tgz
 Source1:      http://www.research.att.com/~gsf/download/tgz/INIT.%{releasedate}.tgz
 Source3:      kshrc.rhs
@@ -20,6 +20,8 @@ Patch1:       ksh-20070328-builtins.patch
 #fix regression test suite to be usable during packagebuild - Fedora/RHEL specific
 Patch2:       ksh-20100826-fixregr.patch
 
+Patch3:       ksh-20120229-rc12hang.patch
+
 BuildRoot:    %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 Conflicts:    pdksh
 Requires: coreutils, glibc-common, diffutils
@@ -40,6 +42,7 @@ with "sh" (the Bourne Shell).
 %setup -q -T -D -a 1
 %patch1 -p1 -b .builtins
 %patch2 -p1 -b .fixregr
+%patch3 -p1 -b .rc12hang
 
 #/dev/fd test does not work because of mock
 sed -i 's|ls /dev/fd|ls /proc/self/fd|' src/cmd/ksh93/features/options
@@ -125,6 +128,9 @@ fi
     rm -rf $RPM_BUILD_ROOT
 
 %changelog
+* Mon Mar 19 2012 Michal Hlavinka <mhlavink at redhat.com> - 20120229-2
+- do not hang after return code 12
+
 * Wed Mar 14 2012 Michal Hlavinka <mhlavink at redhat.com> - 20120229-1
 - ksh updated to 2012-02-29
 


More information about the scm-commits mailing list