fix overflow in subshell loop
This commit is contained in:
parent
eb2dbb25ae
commit
a2f502032f
56
ksh-20130628-longer.patch
Normal file
56
ksh-20130628-longer.patch
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
diff -up ksh-20120801/src/cmd/ksh93/include/defs.h.longer ksh-20120801/src/cmd/ksh93/include/defs.h
|
||||||
|
--- ksh-20120801/src/cmd/ksh93/include/defs.h.longer 2012-06-25 20:47:47.000000000 +0200
|
||||||
|
+++ ksh-20120801/src/cmd/ksh93/include/defs.h 2014-01-17 13:10:49.624714556 +0100
|
||||||
|
@@ -162,8 +162,8 @@ struct shared
|
||||||
|
Namval_t *prev_table; /* previous table used in nv_open */ \
|
||||||
|
Sfio_t *outpool; /* ouput stream pool */ \
|
||||||
|
long timeout; /* read timeout */ \
|
||||||
|
- short curenv; /* current subshell number */ \
|
||||||
|
- short jobenv; /* subshell number for jobs */ \
|
||||||
|
+ long curenv; /* current subshell number */ \
|
||||||
|
+ long jobenv; /* subshell number for jobs */ \
|
||||||
|
int infd; /* input file descriptor */ \
|
||||||
|
short nextprompt; /* next prompt is PS<nextprompt> */ \
|
||||||
|
short poolfiles; \
|
||||||
|
diff -up ksh-20120801/src/cmd/ksh93/include/jobs.h.longer ksh-20120801/src/cmd/ksh93/include/jobs.h
|
||||||
|
--- ksh-20120801/src/cmd/ksh93/include/jobs.h.longer 2011-12-19 13:36:37.000000000 +0100
|
||||||
|
+++ ksh-20120801/src/cmd/ksh93/include/jobs.h 2014-01-17 13:10:49.625714536 +0100
|
||||||
|
@@ -87,7 +87,7 @@ struct process
|
||||||
|
unsigned short p_exit; /* exit value or signal number */
|
||||||
|
unsigned short p_exitmin; /* minimum exit value for xargs */
|
||||||
|
unsigned short p_flag; /* flags - see below */
|
||||||
|
- int p_env; /* subshell environment number */
|
||||||
|
+ long p_env; /* subshell environment number */
|
||||||
|
#ifdef JOBS
|
||||||
|
off_t p_name; /* history file offset for command */
|
||||||
|
struct termios p_stty; /* terminal state for job */
|
||||||
|
diff -up ksh-20120801/src/cmd/ksh93/sh/subshell.c.longer ksh-20120801/src/cmd/ksh93/sh/subshell.c
|
||||||
|
--- ksh-20120801/src/cmd/ksh93/sh/subshell.c.longer 2014-01-17 13:10:49.559715864 +0100
|
||||||
|
+++ ksh-20120801/src/cmd/ksh93/sh/subshell.c 2014-01-17 13:13:41.392290104 +0100
|
||||||
|
@@ -98,7 +98,7 @@ static struct subshell
|
||||||
|
#endif /* SHOPT_COSHELL */
|
||||||
|
} *subshell_data;
|
||||||
|
|
||||||
|
-static int subenv;
|
||||||
|
+static long subenv;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -171,7 +171,7 @@ void sh_subfork(void)
|
||||||
|
{
|
||||||
|
register struct subshell *sp = subshell_data;
|
||||||
|
Shell_t *shp = sp->shp;
|
||||||
|
- int curenv = shp->curenv;
|
||||||
|
+ long curenv = shp->curenv;
|
||||||
|
pid_t pid;
|
||||||
|
char *trap = shp->st.trapcom[0];
|
||||||
|
if(trap)
|
||||||
|
@@ -461,7 +461,7 @@ Sfio_t *sh_subshell(Shell_t *shp,Shnode_
|
||||||
|
struct subshell sub_data;
|
||||||
|
register struct subshell *sp = &sub_data;
|
||||||
|
int jmpval,nsig=0,duped=0;
|
||||||
|
- int savecurenv = shp->curenv;
|
||||||
|
+ long savecurenv = shp->curenv;
|
||||||
|
int savejobpgid = job.curpgid;
|
||||||
|
int *saveexitval = job.exitval;
|
||||||
|
int16_t subshell;
|
7
ksh.spec
7
ksh.spec
@ -6,7 +6,7 @@ URL: http://www.kornshell.com/
|
|||||||
Group: System Environment/Shells
|
Group: System Environment/Shells
|
||||||
License: EPL
|
License: EPL
|
||||||
Version: 20120801
|
Version: 20120801
|
||||||
Release: 13%{?dist}
|
Release: 14%{?dist}
|
||||||
Source0: http://www.research.att.com/~gsf/download/tgz/ast-ksh.%{releasedate}.tgz
|
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
|
Source1: http://www.research.att.com/~gsf/download/tgz/INIT.%{releasedate}.tgz
|
||||||
Source2: kshcomp.conf
|
Source2: kshcomp.conf
|
||||||
@ -29,6 +29,7 @@ Patch8: ksh-20120801-kshmfix.patch
|
|||||||
Patch9: ksh-20120801-memlik.patch
|
Patch9: ksh-20120801-memlik.patch
|
||||||
Patch10: ksh-20120801-mtty.patch
|
Patch10: ksh-20120801-mtty.patch
|
||||||
Patch11: ksh-20120801-argvfix.patch
|
Patch11: ksh-20120801-argvfix.patch
|
||||||
|
Patch12: ksh-20130628-longer.patch
|
||||||
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
Conflicts: pdksh
|
Conflicts: pdksh
|
||||||
@ -59,6 +60,7 @@ with "sh" (the Bourne Shell).
|
|||||||
%patch9 -p1 -b .memlik
|
%patch9 -p1 -b .memlik
|
||||||
%patch10 -p1 -b .mtty
|
%patch10 -p1 -b .mtty
|
||||||
%patch11 -p1 -b .argvfix
|
%patch11 -p1 -b .argvfix
|
||||||
|
%patch12 -p1 -b .longer
|
||||||
|
|
||||||
#/dev/fd test does not work because of mock
|
#/dev/fd test does not work because of mock
|
||||||
sed -i 's|ls /dev/fd|ls /proc/self/fd|' src/cmd/ksh93/features/options
|
sed -i 's|ls /dev/fd|ls /proc/self/fd|' src/cmd/ksh93/features/options
|
||||||
@ -153,6 +155,9 @@ fi
|
|||||||
rm -rf $RPM_BUILD_ROOT
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Jan 17 2014 Michal Hlavinka <mhlavink@redhat.com> - 20120801-14
|
||||||
|
- fix overflow in subshell loop
|
||||||
|
|
||||||
* Mon Jan 06 2014 Michal Hlavinka <mhlavink@redhat.com> - 20120801-13
|
* Mon Jan 06 2014 Michal Hlavinka <mhlavink@redhat.com> - 20120801-13
|
||||||
- fix argv rewrite (#1047508)
|
- fix argv rewrite (#1047508)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user