freebsd-dev/bin/sh
Jilles Tjoelker 1bc2fdfabf sh: Make getopts memory-safe if with changing arguments.
POSIX does not permit to continuing a getopts loop with different
arguments. For parsing the positional parameters, we handle this case by
resetting the getopts state when the positional parameters are changed in
any way (and the getopts state is local to a function). However, in the
syntax getopts <optstring> <var> <arg...>, changes could lead to invalid
memory access.

In the syntax getopts <optstring> <var> <arg...>, store a copy of the
arguments and continue to use them until getopts is reset.
2014-10-26 17:50:33 +00:00
..
bltin sh: Allow kill %job on jobs started without job control. 2014-03-15 14:58:48 +00:00
funcs sh: Remove "kill" example function, which is superseded by the kill builtin 2012-01-21 20:39:17 +00:00
tests sh: Make getopts memory-safe if with changing arguments. 2014-10-26 17:50:33 +00:00
alias.c sh: Fix possible memory leaks and double frees with unexpected SIGINT. 2014-03-26 20:43:40 +00:00
alias.h sh: Fix duplicate prototypes for builtins. 2011-06-13 21:03:27 +00:00
arith_yacc.c sh: Remove two redundant (uintmax_t) casts. 2014-08-20 20:15:43 +00:00
arith_yacc.h sh: Import arithmetic expression code from dash. 2011-02-08 23:18:06 +00:00
arith_yylex.c sh: Reject ++ and -- in arithmetic. 2013-08-24 20:06:00 +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 memcpy() to strcpy() in most cases. Remove the scopy macro. 2013-11-30 21:27:11 +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: Make getopts memory-safe if with changing arguments. 2014-10-26 17:50:33 +00:00
eval.h sh: Make return return from the closest function or dot script. 2013-09-04 22:10:16 +00:00
exec.c sh: Remove prefix() function. Use strncmp() instead. 2014-07-20 12:06:52 +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: Remove more gotos. 2014-10-15 21:20:56 +00:00
expand.h sh: Make expari() static. 2014-02-26 21:38:42 +00:00
histedit.c sh: Avoid overflow in atoi() when parsing HISTSIZE. 2014-08-17 19:36:56 +00:00
input.c sh: Remove arbitrary length limit on << EOF markers. 2014-09-14 16:46:30 +00:00
input.h sh: Remove arbitrary length limit on << EOF markers. 2014-09-14 16:46:30 +00:00
jobs.c sh: Remove more gotos. 2014-10-15 21:20:56 +00:00
jobs.h sh: Fix race condition with signals and wait or set -T. 2013-09-02 21:57:46 +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: Add more necessary INTOFF/INTON. 2014-05-09 13:27:30 +00:00
main.h sh: Make various functions static. 2012-01-01 22:17:12 +00:00
Makefile Replace all uses of libncurses and libtermcap with their wide character 2014-07-17 18:24:34 +00:00
memalloc.c sh: Prefer memcpy() to strcpy() in most cases. Remove the scopy macro. 2013-11-30 21:27:11 +00:00
memalloc.h sh: Remove linked list of stack marks. 2013-05-11 20:51:00 +00:00
miscbltin.c sh: Deduplicate some code in ulimit builtin. 2014-07-19 14:06:23 +00:00
mkbuiltins Work better with how make/bmake works: 2012-05-24 19:48:15 +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: Reject integer overflow in number and is_number. 2014-08-17 16:40:29 +00:00
mystring.h sh: Remove prefix() function. Use strncmp() instead. 2014-07-20 12:06:52 +00:00
nodes.c.pat sh: Add const to nodesavestr(). 2013-04-07 16:28:36 +00:00
nodetypes sh: Reorder union node to reduce its size on 64-bit platforms. 2013-11-01 11:28:56 +00:00
options.c sh: Make getopts memory-safe if with changing arguments. 2014-10-26 17:50:33 +00:00
options.h sh: Make getopts memory-safe if with changing arguments. 2014-10-26 17:50:33 +00:00
output.c sh: Remove output.c's reset() handler. 2013-07-25 13:09:17 +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: Allow backslash-newline continuation in more places: 2014-10-19 11:59:15 +00:00
parser.h sh: Allow aliases to force alias substitution on the following word. 2014-01-26 21:19:33 +00:00
redir.c sh: Eliminate some gotos. 2014-10-05 21:51:36 +00:00
redir.h sh: Remove unnecessary reset functions. 2013-08-16 20:24:41 +00:00
sh.1 sh(1): Clarify that assignments before commands do not affect expansions. 2014-09-21 20:34:54 +00:00
shell.h sh: Remove #define MKINIT. 2013-07-25 19:48:15 +00:00
show.c sh: Prefer memcpy() to strcpy() in most cases. Remove the scopy macro. 2013-11-30 21:27:11 +00:00
show.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
TOUR sh: Remove mkinit. 2013-07-25 15:08:41 +00:00
trap.c sh: Eliminate some gotos. 2014-10-05 21:51:36 +00:00
trap.h sh: Remove SIGWINCH handler and just check for resize before every read. 2014-01-14 22:56:25 +00:00
var.c sh: Fix memory leak with an assignment before a regular builtin. 2014-03-27 22:57:23 +00:00
var.h sh: Simplify code related to PPID variable. 2013-12-25 16:14:02 +00:00