freebsd-skq/bin/sh
Konstantin Belousov 85a0ddfd0b Add a resource limit for the total number of kqueues available to the
user.  Kqueue now saves the ucred of the allocating thread, to
correctly decrement the counter on close.

Under some specific and not real-world use scenario for kqueue, it is
possible for the kqueues to consume memory proportional to the square
of the number of the filedescriptors available to the process.  Limit
allows administrator to prevent the abuse.

This is kernel-mode side of the change, with the user-mode enabling
commit following.

Reported and tested by:	pho
Discussed with:	jmg
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
2013-10-21 16:46:12 +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: Recognize "--" as end of options in alias builtin. 2013-08-25 11:42:53 +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 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 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: Make return return from the closest function or dot script. 2013-09-04 22:10:16 +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: Recognize "--" as end of options in type builtin. 2013-08-30 12:09:59 +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
input.c sh: Remove #define MKINIT. 2013-07-25 19:48:15 +00:00
input.h sh: Remove mkinit. 2013-07-25 15:08:41 +00:00
jobs.c sh: Remove one syscall when waiting for a foreground job. 2013-10-18 12:35:12 +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: Make return return from the closest function or dot script. 2013-09-04 22:10:16 +00:00
main.h sh: Make various functions static. 2012-01-01 22:17:12 +00:00
Makefile sh: Remove mkinit. 2013-07-25 15:08:41 +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 Add a resource limit for the total number of kqueues available to the 2013-10-21 16:46:12 +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: 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: 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: Simplify list() in the parser. 2013-08-30 20:50:28 +00:00
parser.h sh: Cast -1 to pointer rather than pointer to variable of wrong type. 2013-08-30 10:45:02 +00:00
redir.c sh: Remove unnecessary reset functions. 2013-08-16 20:24:41 +00:00
redir.h sh: Remove unnecessary reset functions. 2013-08-16 20:24:41 +00:00
sh.1 sh: Make return return from the closest function or dot script. 2013-09-04 22:10:16 +00:00
shell.h sh: Remove #define MKINIT. 2013-07-25 19:48:15 +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. 2013-07-25 15:08:41 +00:00
trap.c sh: Fix race condition with signals and wait or set -T. 2013-09-02 21:57:46 +00:00
trap.h sh: Fix race condition with signals and wait or set -T. 2013-09-02 21:57:46 +00:00
var.c sh: Recognize "--" as end of options in local builtin. 2013-08-14 21:59:48 +00:00
var.h sh: Use vfork in a few common cases. 2012-02-04 23:12:14 +00:00