freebsd-dev/lib
Konstantin Belousov 19bd0d9c85 Implement address space guards.
Guard, requested by the MAP_GUARD mmap(2) flag, prevents the reuse of
the allocated address space, but does not allow instantiation of the
pages in the range.  It is useful for more explicit support for usual
two-stage reserve then commit allocators, since it prevents accidental
instantiation of the mapping, e.g. by mprotect(2).

Use guards to reimplement stack grow code.  Explicitely track stack
grow area with the guard, including the stack guard page.  On stack
grow, trivial shift of the guard map entry and stack map entry limits
makes the stack expansion.  Move the code to detect stack grow and
call vm_map_growstack(), from vm_fault() into vm_map_lookup().

As result, it is impossible to get random mapping to occur in the
stack grow area, or to overlap the stack guard page.

Enable stack guard page by default.

Reviewed by:	alc, markj
Man page update reviewed by:	alc, bjk, emaste, markj, pho
Tested by:	pho, Qualys
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D11306 (man pages)
2017-06-24 17:01:11 +00:00
..
atf Don't bake all of CC/CPP/CXX into CFLAGS 2016-09-01 02:42:11 +00:00
clang Revert r319796 for now, it can cause undefined references when linking 2017-06-13 21:01:06 +00:00
csu Rework r234502 to include a modified CFLAGS along with ACFLAGS. 2017-04-07 19:53:14 +00:00
lib80211 Don't end up manpage titles with a full stop. 2017-05-24 21:02:53 +00:00
libalias Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 03:34:59 +00:00
libarchive Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
libauditd Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 03:55:21 +00:00
libbegemot Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 03:55:43 +00:00
libblacklist DIRDEPS_BUILD: Connect new directories and update dependencies. 2016-06-03 19:25:30 +00:00
libblocksruntime Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 03:56:10 +00:00
libbluetooth Make cached Bluetooth LE host advertise information visible from userland. 2017-04-27 15:03:24 +00:00
libbsdstat Fix off by one error in index limit calculation 2016-05-16 15:42:59 +00:00
libbsm Merge OpenBSM 1.2-alpha5 from vendor branch to FreeBSD -CURRENT: 2017-03-26 21:14:49 +00:00
libbsnmp DIRDEPS_BUILD: Update dependencies. 2017-05-09 01:48:23 +00:00
libbz2 Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 03:58:50 +00:00
libc Implement address space guards. 2017-06-24 17:01:11 +00:00
libc_nonshared Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 04:04:25 +00:00
libc++ Belatedly add variant.cpp to libc++. This completes the support for the 2017-02-19 14:53:59 +00:00
libc++experimental Add PICFLAG to build libc++experimental.a, so it can be used in all 2017-05-21 21:33:15 +00:00
libcalendar First pass through library packaging. 2016-02-04 21:16:35 +00:00
libcam Remove stdlib.h #include added in r319844 2017-06-12 02:38:37 +00:00
libcapsicum capsicum_helpers: Add LOOKUP flag 2016-12-16 01:37:44 +00:00
libcasper In libcasper, prefer to send a function index or service name over the IPC 2017-03-23 14:35:21 +00:00
libclang_rt Merge ^/head r312968 through r313054. 2017-02-01 21:21:01 +00:00
libcom_err Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 04:51:36 +00:00
libcompat Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
libcompiler_rt [libcompiler-rt] add bswapdi2/bswapsi2 2017-05-21 23:15:32 +00:00
libcrypt Increase WARNS for libcrypt tests 2017-03-11 00:07:04 +00:00
libcuse libcuse: make more use of the howmany() macro when available. 2016-04-26 01:20:16 +00:00
libcxxrt Surround any unmangled C++ names in libcxxrt's version map with 'extern 2017-02-22 18:44:57 +00:00
libdevctl Implement 'devctl clear driver' to undo a previous 'devctl set driver'. 2016-08-29 22:48:36 +00:00
libdevdctl Use .CURDIR:H instead of .CURDIR to simplify pathing in output, etc 2017-01-20 04:55:14 +00:00
libdevinfo MFH 2016-04-04 23:55:32 +00:00
libdevstat First pass through library packaging. 2016-02-04 21:16:35 +00:00
libdpv MFH 2016-03-02 16:14:46 +00:00
libdwarf Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 04:54:21 +00:00
libedit editline.3: Add missing argument to H_SET description 2017-04-28 21:05:28 +00:00
libefivar Fix a coverity-discovered NULL pointer dereference. 2017-03-23 02:30:57 +00:00
libelf Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 04:54:09 +00:00
libelftc libelftc: bump version number for r317075 2017-04-17 23:57:42 +00:00
libevent [private] add libevent1 and sqlite3 include files for our private libraries. 2017-03-27 22:34:43 +00:00
libexecinfo Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 04:53:40 +00:00
libexpat Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 04:53:45 +00:00
libfetch r308996 broke IP literals by assuming that a colon could only occur as 2017-03-17 14:18:52 +00:00
libfigpar MFH 2016-03-02 16:14:46 +00:00
libgcc_eh libcc_{s,eh}: build without SSP 2016-11-11 23:28:07 +00:00
libgcc_s Apply r315689 to lib/libgcc_s as well to unbreak the gcc xtoolchain build 2017-03-28 19:01:01 +00:00
libgeom Remove getpagesize(3) error checking added in r317312 2017-05-28 00:28:11 +00:00
libgpio Use GPIOTOGGLE to toggle the pin state instead of read, modify and write. 2016-04-19 15:18:31 +00:00
libgssapi lib: initial use of reallocarray(3). 2017-04-21 19:27:33 +00:00
libiconv_modules lib: initial use of reallocarray(3). 2017-04-21 19:27:33 +00:00
libifconfig Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
libipsec Add large replay widow support to setkey(8) and libipsec. 2017-04-13 14:44:17 +00:00
libjail libjail: make allocation in jailparam_all() somewhat more robust. 2017-04-16 19:23:10 +00:00
libkiconv Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 04:50:46 +00:00
libkvm Fix #if conditional added in r319008 2017-05-27 23:23:22 +00:00
libldns Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 04:50:19 +00:00
liblzma Use SRCTOP-relative paths and .CURDIR with :H instead of ".." specified paths 2017-01-20 04:46:20 +00:00
libmagic Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 04:45:09 +00:00
libmd ANSIfy md5 functions 2017-06-05 11:55:26 +00:00
libmemstat Fix buildworld for powerpc. 2016-11-20 06:10:12 +00:00
libmilter Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
libmp Increase WARNS for libmp tests 2017-03-11 00:08:11 +00:00
libmt Add LTO-8 density codes. 2017-05-11 13:46:30 +00:00
libnandfs First pass through library packaging. 2016-02-04 21:16:35 +00:00
libnetbsd libnetbsd: add emalloc and friends 2017-04-06 14:36:08 +00:00
libnetgraph First pass through library packaging. 2016-02-04 21:16:35 +00:00
libngatm Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 04:41:53 +00:00
libnv :dnvlist_get_string__default_value: fix a bogus string comparison test 2017-05-29 19:02:52 +00:00
libopenbsd First pass through library packaging. 2016-02-04 21:16:35 +00:00
libopie Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 04:40:10 +00:00
libpam Add options to capture stdout and / or stderr and pass the output on 2017-03-22 13:16:04 +00:00
libpathconv Fix two CURDIR references in comments that should be SRCTOP 2017-03-12 18:59:05 +00:00
libpcap Stop installing pcap-int.h, which is the internal interface for libpcap. 2017-03-07 16:06:53 +00:00
libpe Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 04:37:03 +00:00
libpjdlog MFH 2016-03-02 16:14:46 +00:00
libpmc Don't end up manpage titles with a full stop. 2017-05-24 21:02:53 +00:00
libproc Ensure that the mappings table is populated in proc_objname(). 2017-05-22 23:21:24 +00:00
libprocstat procstat(1): Add TCP socket send/recv buffer size 2017-05-26 22:17:44 +00:00
libradius The NAS-Identifier attribute is a string, not an integer. 2016-05-24 11:44:43 +00:00
librpcsec_gss Fix a potential problem where we might try to shift by more than 31 bits 2017-04-25 10:29:08 +00:00
librpcsvc Utilize SYSROOT from r320119 in places where DESTDIR may be wanting WORLDTMP. 2017-06-19 20:47:24 +00:00
librss librss: simplify some NULL checks. 2017-02-27 00:10:00 +00:00
librt Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 04:36:06 +00:00
librtld_db Avoid double-closing an fd if elf_begin() fails. 2017-03-22 18:14:55 +00:00
libsbuf Use __FBSDID instead of the license agreement to embed the $FreeBSD$ RCS keyword 2017-04-06 05:36:35 +00:00
libsdp lib: minor spelling fixes in comments. 2016-05-01 19:37:33 +00:00
libsm Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 04:35:36 +00:00
libsmb Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 04:35:00 +00:00
libsmdb Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 04:35:18 +00:00
libsmutil Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 04:34:34 +00:00
libsqlite3 [private] add libevent1 and sqlite3 include files for our private libraries. 2017-03-27 22:34:43 +00:00
libstand use the same option list for dhcp discovery and request 2017-05-28 21:30:01 +00:00
libstdbuf First pass through library packaging. 2016-02-04 21:16:35 +00:00
libstdthreads Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 04:33:45 +00:00
libsysdecode Tweak r320206: Still create the TABLE but not the .depend entry for missing headers. 2017-06-21 23:28:24 +00:00
libtacplus First pass through library packaging. 2016-02-04 21:16:35 +00:00
libtelnet Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 04:32:36 +00:00
libthr libthr: increase WARNS to the default (6) 2017-05-26 15:57:54 +00:00
libthread_db libthread_db: unbreak build due to sign/unsigned comparison. 2017-04-20 21:01:59 +00:00
libucl Use SRCTOP to find the sources of libucl 2016-10-15 13:17:27 +00:00
libufs Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
libugidfw First pass through library packaging. 2016-02-04 21:16:35 +00:00
libulog Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 04:29:23 +00:00
libunbound Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 04:31:19 +00:00
libusb Fix libusb20_dev_get_desc(3) to use the "vendor product" order, not 2016-10-22 14:37:13 +00:00
libusbhid Sync ^/vendor/NetBSD/tests/dist with upstream 2017-01-12 07:26:39 +00:00
libutil When sysctlbyname fails, free buf before returning. 2017-06-01 16:44:39 +00:00
libvgl MFH 2016-04-13 16:19:50 +00:00
libvmmapi Capsicum support for bhyve(8). 2017-02-14 13:35:59 +00:00
libwrap Use SRCTOP instead of .CURDIR-relative path in .PATH directive 2017-01-18 18:14:50 +00:00
libxo Import libxo-0.8.1 with official fix to today's build break. 2017-06-09 03:32:49 +00:00
liby Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
libypclnt Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones 2017-01-20 04:28:41 +00:00
libz Add missing double quote to fix r316635 commit. 2017-04-09 03:50:48 +00:00
libzstd DIRDEPS_BUILD: Connect new directories. 2017-05-09 01:48:14 +00:00
msun logarithm_test: assert that feclearexcept succeeds 2017-05-29 18:49:28 +00:00
ncurses Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
tests Merge ^/user/ngie/release-pkg-fix-tests to unbreak how test files are installed 2016-05-04 23:20:53 +00:00
Makefile [lib] disable libc++experimental on mips platforms for now. 2017-05-25 05:02:43 +00:00
Makefile.inc