freebsd-skq/bin/sh
Jilles Tjoelker 336e0c87fa sh: Remove linked list of stack marks.
The linked list of stack marks may cause problems if the allocation stack is
used between an exception and a higher-level popstackmark(), as it may then
touch a stack mark that is local to a function which has returned.

Also, the adjustment compares to a pointer passed to realloc(), which is
undefined behaviour.

Instead of adjusting stack marks when reallocating stack blocks, ensure that
such an adjustment is never necessary by fixing a small piece of memory in
place at a stack mark. This also simplifies the code.

To avoid the problems reported in bin/175922, it remains necessary to call
setstackmark() after popstackmark() if the stack mark remains in use.
2013-05-11 20:51:00 +00:00
..
bltin sh: Fix duplicate prototypes for builtins. 2011-06-13 21:03:27 +00:00
funcs sh: Remove "kill" example function, which is superseded by the kill builtin 2012-01-21 20:39:17 +00:00
alias.c sh: Fix two issues when an alias is redefined: 2012-11-08 13:33:48 +00:00
alias.h sh: Fix duplicate prototypes for builtins. 2011-06-13 21:03:27 +00:00
arith_yacc.c Add prototypes, ANSIfy functions definitions to reduce WARNS=6 output. 2012-01-25 08:42:19 +00:00
arith_yacc.h sh: Import arithmetic expression code from dash. 2011-02-08 23:18:06 +00:00
arith_yylex.c Add prototypes, ANSIfy functions definitions to reduce WARNS=6 output. 2012-01-25 08:42:19 +00:00
arith.h sh: Fix duplicate prototypes for builtins. 2011-06-13 21:03:27 +00:00
builtins.def sh: Remove the "exp" builtin. 2011-05-27 20:53:07 +00:00
cd.c sh: Prefer internal nextopt() to libc getopt(). 2012-09-15 21:56:30 +00:00
cd.h sh: Fix duplicate prototypes for builtins. 2011-06-13 21:03:27 +00:00
error.c sh: Add a function to print warnings (with command name and newline). 2010-12-21 20:47:06 +00:00
error.h sh: Allow EV_EXIT through function calls, make {...} <redir more consistent. 2011-04-23 22:28:56 +00:00
eval.c sh: Don't modify exit status when break/continue/return passes !. 2013-04-12 15:19:35 +00:00
eval.h sh: Fix execution of multiple statements in a trap when evalskip is set 2012-01-16 11:07:46 +00:00
exec.c sh: Fix various compiler warnings. 2013-04-01 17:18:22 +00:00
exec.h sh: Expand assignment-like words specially for export/readonly/local. 2012-07-15 10:19:43 +00:00
expand.c sh: Fix various compiler warnings. 2013-04-01 17:18:22 +00:00
expand.h sh: Expand here documents in the current process. 2013-02-03 15:54:57 +00:00
histedit.c sh: Prefer internal nextopt() to libc getopt(). 2012-09-15 21:56:30 +00:00
init.h sh: Remove mkinit's initialization routine. 2013-01-20 12:44:50 +00:00
input.c sh: Use O_CLOEXEC and F_DUPFD_CLOEXEC instead of separate fcntl() call. 2013-05-05 10:51:40 +00:00
input.h sh: Fix various compiler warnings. 2013-04-01 17:18:22 +00:00
jobs.c sh: Use O_CLOEXEC and F_DUPFD_CLOEXEC instead of separate fcntl() call. 2013-05-05 10:51:40 +00:00
jobs.h sh: Remove unused variable in_dowait. 2012-07-15 10:49:16 +00:00
mail.c Consistently use "STATIC" for all functions in order to be able to set 2010-10-13 04:01:01 +00:00
mail.h
main.c sh: Use O_CLOEXEC and F_DUPFD_CLOEXEC instead of separate fcntl() call. 2013-05-05 10:51:40 +00:00
main.h sh: Make various functions static. 2012-01-01 22:17:12 +00:00
Makefile Work better with how make/bmake works: 2012-05-24 19:48:15 +00:00
memalloc.c sh: Remove linked list of stack marks. 2013-05-11 20:51:00 +00:00
memalloc.h sh: Remove linked list of stack marks. 2013-05-11 20:51:00 +00:00
miscbltin.c sh: Improve error handling in read builtin: 2013-05-03 15:28:31 +00:00
mkbuiltins Work better with how make/bmake works: 2012-05-24 19:48:15 +00:00
mkinit.c sh: Remove mkinit's initialization routine. 2013-01-20 12:44:50 +00:00
mknodes.c sh: Fix crash with empty functions (f() { }) introduced in r196483 2009-08-28 22:41:25 +00:00
mksyntax.c sh: Simplify mksyntax and make it fit for cross-compiling. 2013-02-07 22:42:33 +00:00
mktokens sh: Add case statement fallthrough (with ';&' instead of ';;'). 2011-06-17 13:03:49 +00:00
myhistedit.h sh: Make various functions static. 2012-01-01 22:17:12 +00:00
mystring.c sh: Remove unused function scopyn(). 2012-01-01 22:15:38 +00:00
mystring.h sh: Remove unused function scopyn(). 2012-01-01 22:15:38 +00:00
nodes.c.pat sh: Add const to nodesavestr(). 2013-04-07 16:28:36 +00:00
nodetypes sh: Expand here documents in the current process. 2013-02-03 15:54:57 +00:00
options.c sh: Remove XXX comment about removing nextopt(). 2012-09-08 19:24:03 +00:00
options.h sh: Add do-nothing -h option. 2011-06-18 23:43:28 +00:00
output.c sh: Detect and flag write errors on stdout in builtins. 2012-12-12 22:01:10 +00:00
output.h sh: Detect and flag write errors on stdout in builtins. 2012-12-12 22:01:10 +00:00
parser.c sh: Fix various compiler warnings. 2013-04-01 17:18:22 +00:00
parser.h sh: Fix various compiler warnings. 2013-04-01 17:18:22 +00:00
redir.c sh: Use O_CLOEXEC and F_DUPFD_CLOEXEC instead of separate fcntl() call. 2013-05-05 10:51:40 +00:00
redir.h
sh.1 sh: Improve error handling in read builtin: 2013-05-03 15:28:31 +00:00
shell.h sh: Detect dividing the smallest integer by -1. 2011-02-12 23:44:05 +00:00
show.c In the spirit of r90111, depend on c89 and remove the "STATIC" macro 2010-10-13 22:18:03 +00:00
show.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
TOUR sh: Remove mkinit's initialization routine. 2013-01-20 12:44:50 +00:00
trap.c sh: Fix various compiler warnings. 2013-04-01 17:18:22 +00:00
trap.h sh: If a SIGINT or SIGQUIT interrupts "wait", return status 128+sig. 2013-02-23 22:50:57 +00:00
var.c Fix two typos 2013-05-09 21:29:16 +00:00
var.h sh: Use vfork in a few common cases. 2012-02-04 23:12:14 +00:00