[ksh/f18] do not segfault on kill % (#914669)

Michal Hlavinka mhlavink at fedoraproject.org
Fri Feb 22 15:46:37 UTC 2013


commit c6cf9ec95a5f39631f678f4759ff8e94d40b9bfa
Author: Michal Hlavinka <mhlavink at redhat.com>
Date:   Fri Feb 22 16:46:33 2013 +0100

    do not segfault on kill % (#914669)

 ksh-20130214-fixkill.patch |   21 +++++++++++++++++++++
 ksh.spec                   |    7 ++++++-
 2 files changed, 27 insertions(+), 1 deletions(-)
---
diff --git a/ksh-20130214-fixkill.patch b/ksh-20130214-fixkill.patch
new file mode 100644
index 0000000..0862880
--- /dev/null
+++ b/ksh-20130214-fixkill.patch
@@ -0,0 +1,21 @@
+diff -up ksh-20130214/src/cmd/ksh93/sh/jobs.c.fixkill ksh-20130214/src/cmd/ksh93/sh/jobs.c
+--- ksh-20130214/src/cmd/ksh93/sh/jobs.c.fixkill	2012-09-26 17:43:04.000000000 +0200
++++ ksh-20130214/src/cmd/ksh93/sh/jobs.c	2013-02-22 16:38:05.080161740 +0100
+@@ -1104,6 +1104,8 @@ static struct process *job_bystring(regi
+ 
+ int job_kill(register struct process *pw,register int sig)
+ {
++	if(pw==0)
++		goto error;
+ 	Shell_t	*shp = pw->p_shp;
+ 	register pid_t pid;
+ 	register int r;
+@@ -1127,8 +1129,6 @@ int job_kill(register struct process *pw
+ #endif	/* SIGTSTP */
+ 	job_lock();
+ 	errno = ECHILD;
+-	if(pw==0)
+-		goto error;
+ 	pid = pw->p_pid;
+ #if SHOPT_COSHELL
+ 	if(pw->p_cojob)
diff --git a/ksh.spec b/ksh.spec
index 4b5f4e4..56f0bc3 100644
--- a/ksh.spec
+++ b/ksh.spec
@@ -6,7 +6,7 @@ URL:          http://www.kornshell.com/
 Group:        System Environment/Shells
 License:      EPL
 Version:      20120801
-Release:      6%{?dist}
+Release:      7%{?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
 Source2:      kshcomp.conf
@@ -24,6 +24,7 @@ Patch3: rmdirfix.patch
 Patch4: ksh-20120801-cdfix.patch
 Patch5: ksh-20120801-tabfix.patch
 Patch6: ksh-20120801-cdfix2.patch
+Patch7: ksh-20130214-fixkill.patch
 
 BuildRoot:    %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 Conflicts:    pdksh
@@ -49,6 +50,7 @@ with "sh" (the Bourne Shell).
 %patch4 -p1 -b .cdfix
 %patch5 -p1 -b .tabfix
 %patch6 -p1 -b .cdfix2
+%patch7 -p1 -b .fixkill
 
 #/dev/fd test does not work because of mock
 sed -i 's|ls /dev/fd|ls /proc/self/fd|' src/cmd/ksh93/features/options
@@ -139,6 +141,9 @@ fi
 rm -rf $RPM_BUILD_ROOT
 
 %changelog
+* Fri Feb 22 2013 Michal Hlavinka <mhlavink at redhat.com> - 20120801-7
+- do not segfault on kill % (#914669)
+
 * Fri Feb 01 2013 Michal Hlavinka <mhlavink at redhat.com> - 20120801-1
 - cd file did not produce any error
 


More information about the scm-commits mailing list