NetBSD/sys/kern
joerg 4f77b889d0 Extend the mmap(2) interface to allow requesting protections for later
use with mprotect(2), but without enabling them immediately.

Extend the mremap(2) interface to allow duplicating mappings, i.e.
create a second range of virtual addresses references the same physical
pages. Duplicated mappings can have different effective protections.

Adjust PAX mprotect logic to disallow effective protections of W&X, but
allow one mapping W and another X protections. This obsoletes using
temporary files for purposes like JIT.

Adjust PAX logic for mmap(2) and mprotect(2) to fail if W&X is requested
and not silently drop the X protection.

Improve test cases to ensure correct operation of the changed
interfaces.
2017-05-06 21:34:51 +00:00
..
bufq_disksort.c Use consistently "bufq_private(bufq)" instead of "bufq->bq_private" 2017-05-04 11:03:27 +00:00
bufq_fcfs.c Use consistently "bufq_private(bufq)" instead of "bufq->bq_private" 2017-05-04 11:03:27 +00:00
bufq_priocscan.c Use consistently "bufq_private(bufq)" instead of "bufq->bq_private" 2017-05-04 11:03:27 +00:00
bufq_readprio.c Use consistently "bufq_private(bufq)" instead of "bufq->bq_private" 2017-05-04 11:03:27 +00:00
cnmagic.c Correct typo in the comment 2017-05-04 11:01:16 +00:00
core_elf32.c Set clear comment about EI_OSABI and EI_ABIVERSION 2017-05-04 11:12:23 +00:00
core_elf64.c
core_netbsd.c Introduce new ptrace(2) interface: PT_SET_SIGINFO and PT_GET_SIGINFO 2017-01-06 22:53:17 +00:00
exec_aout.c
exec_ecoff.c
exec_elf32.c The argument length is in bytes; don't use howmany() 2017-01-25 17:56:45 +00:00
exec_elf64.c The argument length is in bytes; don't use howmany() 2017-01-25 17:56:45 +00:00
exec_elf.c Enhance verbosity of debug message for ELF magic mismatch 2017-04-21 13:17:42 +00:00
exec_script.c Try not to use f_data, use f_{vnode,socket,pipe,mqueue,kqueue,ksem} to get 2014-09-05 09:20:59 +00:00
exec_subr.c Extend the mmap(2) interface to allow requesting protections for later 2017-05-06 21:34:51 +00:00
files.kern use opt_kmem.h for the KMEM_ variables. 2017-04-12 20:05:54 +00:00
genlintstub.awk
init_main.c Make pfil(9) MP-safe (applying psref(9)) 2017-01-16 09:28:40 +00:00
init_sysctl_base.c Move a bunch of sysctl nodes from init_sysctl (kitchen sink sysctl file) 2015-08-25 14:52:31 +00:00
init_sysctl.c Remove the "target" argment from vfs_drainvnodes() as it is 2016-12-14 15:46:57 +00:00
init_sysent.c regen 2017-01-13 06:18:31 +00:00
kern_acct.c
kern_auth.c Expose struct kauth_cred for the benefit of the debugger. I can't convince gcc 2015-10-06 22:13:39 +00:00
kern_cctr.c
kern_cfglock.c
kern_clock.c Add a KASSERT, otherwise it looks like a NULL deref; from Mootja. 2017-02-12 18:43:56 +00:00
kern_condvar.c o Don't include sys/sched.h. Scheduler-related operation is done by 2015-08-07 06:22:12 +00:00
kern_core.c KNF. Remove extra spaces. No functional change. 2016-07-07 06:55:38 +00:00
kern_cpu.c Don't decrement the number of offline cpus if we fail to shut down one. 2015-08-29 12:24:00 +00:00
kern_ctf.c KNF. Remove extra spaces. No functional change. 2016-07-07 06:55:38 +00:00
kern_descrip.c 1. mask fflags so we don't tack on whateve oflags were passed from userland 2015-08-03 04:55:15 +00:00
kern_drvctl.c don't release mutexes you did not enter? Please develop with LOCKDEBUG on! 2015-12-07 20:01:43 +00:00
kern_event.c Rearrange the if conditions in order to get rid of unnecessary indentation. 2017-04-27 16:52:22 +00:00
kern_exec.c - Propagate the signal mask from the ucontext_t to the newly created thread 2017-04-21 15:10:34 +00:00
kern_exit.c Cleanup dead code after revert of racy vfork(2) commit 2017-01-09 00:31:30 +00:00
kern_fileassoc.c
kern_fork.c - Propagate the signal mask from the ucontext_t to the newly created thread 2017-04-21 15:10:34 +00:00
kern_history.c Use membar_{producer,consumer}() to ensure proper access to the "ready" 2017-01-10 22:08:14 +00:00
kern_hook.c
kern_idle.c
kern_ksyms_buf.c Use makeoptions_COPY_SYMTAB via opt_copy_symtab.h in sources. Remove a hack 2015-08-30 01:46:02 +00:00
kern_ksyms.c KNF. Remove extra spaces. No functional change. 2016-07-07 06:55:38 +00:00
kern_kthread.c - Propagate the signal mask from the ucontext_t to the newly created thread 2017-04-21 15:10:34 +00:00
kern_ktrace_vfs.c Try not to use f_data, use f_{vnode,socket,pipe,mqueue,kqueue,ksem} to get 2014-09-05 09:20:59 +00:00
kern_ktrace.c Allow emulations to override the creation of ktrace records for posting 2016-09-13 07:39:45 +00:00
kern_lock.c For LOCKDEBUG: 2017-01-26 04:11:56 +00:00
kern_lwp.c - Propagate the signal mask from the ucontext_t to the newly created thread 2017-04-21 15:10:34 +00:00
kern_malloc.c Don't include <uvm/uvm_extern.h> 2015-02-06 18:21:29 +00:00
kern_module_vfs.c use a bound string copy 2017-01-15 01:47:24 +00:00
kern_module.c PR/52174: Remove root test, it is too verbose. XXX: need to come up with 2017-04-18 18:07:29 +00:00
kern_mutex_obj.c
kern_mutex.c Introduce mutex_ownable() to determine if it is possible for the current 2017-05-01 21:35:25 +00:00
kern_ntptime.c Cast argument to uint64_t first before shifting to avoid UB for 2015-11-23 23:45:44 +00:00
kern_pax.c Extend the mmap(2) interface to allow requesting protections for later 2017-05-06 21:34:51 +00:00
kern_physio.c Don't check if constant-sized KM_SLEEP allocations succeeded. 2015-04-21 10:54:52 +00:00
kern_pmf.c KNF. Remove extra spaces. No functional change. 2016-07-07 06:55:38 +00:00
kern_proc.c factor out getauxv code. 2017-03-30 20:17:11 +00:00
kern_prot.c Make p_ppid contain the original parent's pid even for traced processes. 2016-11-13 15:25:01 +00:00
kern_ras.c Make the execution flow canonical instead of jumping back and forth, and 2016-07-04 07:56:07 +00:00
kern_rate.c
kern_resource.c Add new sysctl variable proc.curproc.paxflags so a process can determine 2017-03-24 21:43:20 +00:00
kern_rndpool.c Turn a kassert into a more appropriately placed ctassert. 2015-04-21 04:41:36 +00:00
kern_rndq.c Ask on-demand entropy sources to produce enough data to fill buffer. 2016-05-21 15:27:15 +00:00
kern_rndsink.c Use rnd_getmore as intended. No more essay needed here. 2016-05-21 15:33:40 +00:00
kern_runq.c When balancing threads over multiple CPUs, use fixpoint arithmetic 2016-12-22 14:11:58 +00:00
kern_rwlock_obj.c
kern_rwlock.c For LOCKDEBUG: 2017-01-26 04:11:56 +00:00
kern_sdt.c fix inconsistency about "sdt" provider which was declared but not defined. 2016-04-04 03:53:25 +00:00
kern_sig.c - Propagate the signal mask from the ucontext_t to the newly created thread 2017-04-21 15:10:34 +00:00
kern_sleepq.c GSoC 2016 Charles Cui: Implement thread priority protection based on work 2016-07-03 14:24:58 +00:00
kern_softint.c revert kern_softint.c:r1.42 (which was incorrect fix) 2016-07-04 04:20:14 +00:00
kern_ssp.c void duplicate definition on statically linking libc+ssp and rumpkern+ssp. 2016-12-06 02:55:42 +00:00
kern_stub.c * Split sys/kern/sys_process.c into three parts: 2016-11-02 00:11:59 +00:00
kern_subr.c Protect ifnet list with psz and psref 2016-05-12 02:24:16 +00:00
kern_synch.c GSoC 2016 Charles Cui: Implement thread priority protection based on work 2016-07-03 14:24:58 +00:00
kern_syscall.c Instead of copying parts of sigswitch to process_stoptrace, use it directly. 2017-03-24 17:40:44 +00:00
kern_sysctl.c Add a check to ensure that a new sysctl node was attached in the tree 2017-04-25 22:07:10 +00:00
kern_tc.c
kern_time.c Adjust clock_nanosleep(2) to not copyout remaining time struct if 2016-11-11 15:29:36 +00:00
kern_timeout.c fix crash(8) printing of callouts. 2015-11-24 15:48:23 +00:00
kern_todr.c <sys/rnd.h> -> <sys/rndsource.h> in kern_todr.c. 2015-04-13 16:36:54 +00:00
kern_turnstile.c
kern_uidinfo.c Need membar_datadep_consumer here. 2017-03-18 05:49:56 +00:00
kern_uuid.c Get arguments in the right order for copyout. (Oops!) 2014-10-05 10:00:03 +00:00
kern_veriexec.c Switch veriexec_dump() and veriexec_flush() to mountlist iterator. 2017-04-12 10:30:02 +00:00
kern_xxx.c introduce a new way of handling SYSCALL_DEBUG messages -- send them to 2015-10-29 00:27:08 +00:00
kgdb_stub.c Wait for the next character forever as kgdb wants. 2015-06-26 14:26:38 +00:00
Make.tags.inc
Makefile Adjust for systrace based on the FreeBSD code: 2015-03-07 16:38:07 +00:00
makesyscalls.sh put linux_handler_t in the right place. 2017-01-15 17:00:59 +00:00
sched_4bsd.c
sched_m2.c
subr_autoconf.c #if DIAGNOSTIC panic ---> KASSERT; __diagused police 2017-03-20 01:24:06 +00:00
subr_blist.c fix number of arguments of kmem_alloc and kmem_zalloc macro. ok skrll. 2017-02-13 16:53:41 +00:00
subr_bufq.c By popular request, don't bother initializing a static pointer to NULL. 2016-11-18 02:37:33 +00:00
subr_callback.c
subr_copy.c Introduce security.pax.mprotect.ptrace sysctl which can be used to bypass 2016-05-25 17:43:58 +00:00
subr_cprng.c More rnd.h user cleanup. 2015-04-13 22:43:41 +00:00
subr_cpufreq.c
subr_debug.c
subr_device.c The use of root_device is not limited to vfs, so don't supply it in 2015-03-09 15:35:11 +00:00
subr_devsw.c Use __func__ for routine name in printf() calls. NFC intended. 2017-04-25 08:46:38 +00:00
subr_disk_mbr.c PR kern/51208 2017-02-19 07:43:42 +00:00
subr_disk_open.c Replace DIOCGPART -> DIOCGPARTINFO which returns the data needed instead of 2015-12-08 20:36:14 +00:00
subr_disk.c Enhance disk metrics by calculating a weighted sum that is incremented 2017-03-05 23:07:12 +00:00
subr_evcnt.c
subr_exec_fd.c Try not to use f_data, use f_{vnode,socket,pipe,mqueue,kqueue,ksem} to get 2014-09-05 09:20:59 +00:00
subr_extent.c panic() must be able to take varargs - in userspace testing too. 2016-12-19 13:02:14 +00:00
subr_hash.c Add HASH_PSLIST (pslist(9)) type for hashinit() 2016-07-06 05:20:48 +00:00
subr_humanize.c
subr_interrupt.c Add kernel code to support intrctl(8). 2015-08-17 06:16:02 +00:00
subr_iostat.c Enhance disk metrics by calculating a weighted sum that is incremented 2017-03-05 23:07:12 +00:00
subr_ipi.c Implement ipi_trigger_multi(9); requested by cherry@. 2015-01-18 23:16:35 +00:00
subr_kcpuset.c
subr_kmem.c use opt_kmem.h for the KMEM_ variables. 2017-04-12 20:05:54 +00:00
subr_kobj_vfs.c Split the data+bss+rodata segment in two data+bss and rodata segments. The 2016-07-20 13:36:19 +00:00
subr_kobj.c simplify. 2017-04-19 15:54:45 +00:00
subr_lockdebug.c Introduce mutex_ownable() to determine if it is possible for the current 2017-05-01 21:35:25 +00:00
subr_log.c Don't log kern.msgbuf* sysctls. it's rather pointless, nobody can 2015-05-20 11:18:36 +00:00
subr_lwp_specificdata.c
subr_once.c
subr_optstr.c David Binderman in PR kern/51189: simplify loop conditions 2016-05-30 11:24:40 +00:00
subr_pcq.c Use membar_datadep_consumer where code inspection reveals it necessary. 2015-01-08 23:39:57 +00:00
subr_pcu.c allow pcu_save() and pcu_discard() to be called on other threads, 2017-03-16 16:13:19 +00:00
subr_percpu.c Consistently use kpreempt_*() outside scheduler path. 2014-11-27 15:00:00 +00:00
subr_physmap.c
subr_pool.c #if DIAGNOSTIC panic ---> KASSERT 2017-03-14 03:13:50 +00:00
subr_prf.c Bump size of scratchstr - some KASSERTMGS exceed 256 characters 2016-07-27 09:57:26 +00:00
subr_prof.c
subr_pserialize.c Typo in comment. 2015-06-12 19:18:30 +00:00
subr_psref.c Add a new sanity check to psref 2016-11-09 09:00:46 +00:00
subr_specificdata.c
subr_spldebug.c
subr_syscall_stats.c
subr_tftproot.c The mbuf is freed by the protocol even on error, so always NULL the pointer 2016-10-31 15:27:24 +00:00
subr_time.c Use the new magic BINTIME_SCALE_* macros instead of magic numbers. 2017-01-05 23:29:14 +00:00
subr_userconf.c
subr_vmem.c KNF. Remove extra spaces. No functional change. 2016-07-07 06:55:38 +00:00
subr_workqueue.c
subr_xcall.c Fix a race condition of low priority xcall 2016-11-21 00:54:21 +00:00
sys_aio.c - Propagate the signal mask from the ucontext_t to the newly created thread 2017-04-21 15:10:34 +00:00
sys_descrip.c Try not to use f_data, use f_{vnode,socket,pipe,mqueue,kqueue,ksem} to get 2014-09-05 09:20:59 +00:00
sys_generic.c Try not to use f_data, use f_{vnode,socket,pipe,mqueue,kqueue,ksem} to get 2014-09-05 09:20:59 +00:00
sys_lwp.c Try to fix build of sys_lwp.c 2017-04-21 19:38:35 +00:00
sys_module.c Put the code in charge of handling MODCTL_STAT into a separate function. 2015-12-12 14:47:37 +00:00
sys_mqueue.c CID 1308958: Fix reversed arguments in copyin(9) 2015-06-29 15:44:45 +00:00
sys_pipe.c Try not to use f_data, use f_{vnode,socket,pipe,mqueue,kqueue,ksem} to get 2014-09-05 09:20:59 +00:00
sys_pmc.c
sys_process.c Paranoia... keep vmspace reference while doing pmap_procwr 2017-04-13 07:58:45 +00:00
sys_pset.c Don't forget to unlock the LWP. 2015-07-30 08:11:44 +00:00
sys_ptrace_common.c Fix kernel panic triggered with LLDB 2017-05-03 15:53:31 +00:00
sys_ptrace.c Introduce PT_GETDBREGS and PT_SETDBREGS in ptrace(2) on i386 and amd64 2017-02-23 03:34:22 +00:00
sys_sched.c Fix reversed test. 2016-07-30 15:38:17 +00:00
sys_select.c
sys_sig.c Realtime signal support from GSoC 2016, Charles Cui. 2016-08-04 06:43:43 +00:00
sys_socket.c KNF. Remove extra spaces. No functional change. 2016-07-07 06:55:38 +00:00
sys_syscall.c regen 2015-03-07 16:38:49 +00:00
syscalls_autoload.c regen 2017-01-13 06:18:31 +00:00
syscalls.c regen 2017-01-13 06:18:31 +00:00
syscalls.conf Include non-portable <sys/idtype.h> inside RUMP_CLIENT protection. 2016-05-06 10:17:34 +00:00
syscalls.master * Split sys/kern/sys_process.c into three parts: 2016-11-02 00:11:59 +00:00
systrace_args.c regen 2017-01-13 06:18:31 +00:00
sysv_ipc.c When unloading the module, clear the address of the kauth_listener 2015-12-05 00:51:42 +00:00
sysv_msg.c don't forget to destroy a cv 2016-09-05 14:13:50 +00:00
sysv_sem.c In sysv_sem.c, defer establishment of exithook so we can initialize the 2015-11-06 02:26:42 +00:00
sysv_shm.c We never exec(2) with a kernel vmspace, so do not test for that, but instead 2015-11-26 13:15:34 +00:00
tty_bsdpty.c
tty_conf.c
tty_ptm.c to garnish, dust with _KERNEL_OPT 2015-08-24 22:50:32 +00:00
tty_pty.c include ioconf.h instead of locally declaring the prototype of the attach 2015-08-20 09:45:45 +00:00
tty_subr.c
tty_tty.c
tty.c Require exact credential match; this way even if we su to the original user 2016-10-01 04:42:54 +00:00
uipc_accf.c
uipc_domain.c - add diagnostic check for sa_len 2014-12-02 19:45:58 +00:00
uipc_mbuf2.c
uipc_mbuf.c Remove extra 0x in m_print(). 2017-03-31 05:44:05 +00:00
uipc_proto.c
uipc_sem.c Memory leak, found by Mootja. By the way, we probably shouldn't be 2016-10-31 15:08:45 +00:00
uipc_socket2.c more MFREE -> m_free 2016-10-02 19:26:46 +00:00
uipc_socket.c whitespace police 2017-05-01 10:00:43 +00:00
uipc_syscalls.c expose sendmsg_so and recvmsg_so. 2017-02-03 16:06:45 +00:00
uipc_usrreq.c Memory leak, found by Mootja. It is easily triggerable from userland. 2016-10-31 15:05:05 +00:00
vfs_bio.c expose disk device FUA/DPO support via DIOCGCACHE, and allow the flags 2017-04-05 20:15:49 +00:00
vfs_cache.c Summarize lifetime of cache entries. 2017-03-18 22:36:56 +00:00
vfs_cwd.c
vfs_dirhash.c Don't next structure and enum definitions. 2014-09-05 05:57:21 +00:00
vfs_getcwd.c
vfs_hooks.c
vfs_init.c Remove miscfs/syncfs and 2015-05-06 15:57:07 +00:00
vfs_lockf.c
vfs_lookup.c Remove unused argument "nextp" from vfs_busy() and vfs_unbusy(). 2017-04-17 08:32:00 +00:00
vfs_mount.c Add vfs_trybusy() and mountlist_iterator_trynext() and use it for the syncer. 2017-04-17 08:34:27 +00:00
vfs_quotactl.c
vfs_subr.c Add vfs_trybusy() and mountlist_iterator_trynext() and use it for the syncer. 2017-04-17 08:34:27 +00:00
vfs_syscalls.c Change VOP_REMOVE and VOP_RMDIR to preserve lock/ref on dvp. 2017-04-26 03:02:47 +00:00
vfs_trans.c Remove unused argument "nextp" from vfs_busy() and vfs_unbusy(). 2017-04-17 08:32:00 +00:00
vfs_vnode.c Remove unused argument "nextp" from vfs_busy() and vfs_unbusy(). 2017-04-17 08:32:00 +00:00
vfs_vnops.c Lock the vnode before changing its writecount. 2017-03-30 09:13:37 +00:00
vfs_wapbl.c rename allow_fuadpo to allow_dpofua, so it's the same order as the SCSI flag 2017-04-10 21:36:05 +00:00
vfs_xattr.c Try not to use f_data, use f_{vnode,socket,pipe,mqueue,kqueue,ksem} to get 2014-09-05 09:20:59 +00:00
vnode_if.c regen 2017-04-26 03:04:24 +00:00
vnode_if.sh Count vnode arguments correctly. 2017-04-16 17:18:28 +00:00
vnode_if.src Change VOP_REMOVE and VOP_RMDIR to preserve lock/ref on dvp. 2017-04-26 03:02:47 +00:00