Your message dated Mon, 8 Jun 2026 13:11:41 +0530
with message-id <aiZyNUoMgvRVGOJQ@riviera>
and subject line Re: ksh killed by SIGSEGV due to overflow in subshell loop
has caused the Debian Bug report #736410,
regarding ksh killed by SIGSEGV due to overflow in subshell loop
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
736410: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=736410
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: ksh
Version: 93u+-1.2
Severity: normal
Tags: patch
This is basically a mirror of bug #1053938 reported for Fedora:
https://bugzilla.redhat.com/show_bug.cgi?id=1053938
The bug exists for the ksh package on Debian too (tried both
stable and sid on PowerPC) and can be reproduced pretty reliable
with the details in the above mentioned bug report.
Michal Hlavinka was able to provide a fix that has been included
the latest Fedora package of ksh.
I'll attach Michal's patch to that bug report. Moving this to
debian/patches and editing the series file built the package just fine
and fixed the bug.
-- System Information:
Debian Release: 7.3
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'proposed-updates'), (500,
'stable')
Architecture: powerpc (ppc)
Kernel: Linux 3.13.0-rc8
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages ksh depends on:
ii libc6 2.13-38+deb7u1
ksh recommends no packages.
ksh suggests no packages.
-- no debconf information
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;
--- End Message ---
--- Begin Message ---
Control: reassign -1 ksh93u+m
Version: 1.0.0~beta.1-1
Closing as fixed. src:ksh was removed from Debian, and ksh93u+m had
this addressed upstream on 2020-08-11, before the first ksh93u+m
release.
Upstream reference: https://github.com/ksh93/ksh/pull/113
Anuradha
--- End Message ---