zephyr/kernel
Leandro Pereira db094b8d88 kernel: mem_domain: Check for overlapping regions when considering W^X
Multiple partitions can be added to a domain, and if they overlap, they
can have different attributes.  The previous check would only check for
W^X for individual partitions, and this is insufficient.  Overlapping
partitions could have W^X attributes, but in the end, a memory region
would be writable and executable.

The way this is performed is quite "heavyweight", as it is implemented
in a O(n^2) operation.  The number of partitions per domain is small on
most devices, so this isn't an issue.  CONFIG_EXECUTE_XOR_WRITE is
still an optional feature.

Signed-off-by: Leandro Pereira <leandro.pereira@intel.com>
2018-03-02 07:08:49 +01:00
..
include kernel/kswap.h: Hook event logger from switch-based _Swap 2018-02-16 10:44:29 -05:00
posix kernel: POSIX: correcting default thread prio & policy in attr. 2018-03-01 14:48:20 -08:00
alert.c kernel: Provide only one _SYSCALL_HANDLER() macro 2017-10-16 13:42:15 -04:00
atomic_c.c license: Replace Apache boilerplate with SPDX tag 2017-01-19 03:50:58 +00:00
CMakeLists.txt kernel: POSIX: Compatibility layer for pthread APIs. 2018-02-21 19:17:28 -05:00
compiler_stack_protect.c linker: move all linker headers to include/linker 2017-06-18 09:24:04 -05:00
device.c kernel: device: Only compare strings if pointer comparison fails 2018-02-15 17:31:59 -08:00
errno.c kernel: errno: Use per-thread accessor function compatible with Newlib 2017-05-10 20:54:56 -04:00
idle.c kernel: Simplified idle for SMP auxiliary CPUs 2018-02-16 10:44:29 -05:00
init.c kernel/include: Missed nano_internal.h -> kernel_internal.h spots 2018-02-16 10:44:29 -05:00
int_latency_bench.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
Kconfig kernel: POSIX: Compatibility layer for POSIX timer APIs. 2018-02-21 19:17:28 -05:00
Kconfig.event_logger kconfig: fix more help spacing issues 2018-02-15 23:20:55 -05:00
Kconfig.power_mgmt kconfig: fix more help spacing issues 2018-02-15 23:20:55 -05:00
mailbox.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
mem_domain.c kernel: mem_domain: Check for overlapping regions when considering W^X 2018-03-02 07:08:49 +01:00
mem_slab.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
mempool.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
msg_q.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
mutex.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
pipes.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
poll.c kernel/include: Missed nano_internal.h -> kernel_internal.h spots 2018-02-16 10:44:29 -05:00
queue.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
sched.c kernel: SMP-aware scheduler 2018-02-16 10:44:29 -05:00
sem.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
smp.c kernel/include: Missed nano_internal.h -> kernel_internal.h spots 2018-02-16 10:44:29 -05:00
stack.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
sys_clock.c kernel: SMP timer integration 2018-02-16 10:44:29 -05:00
system_work_q.c kernel: introduce stack definition macros 2017-06-09 18:53:28 -04:00
thread.c kernel/include: Missed nano_internal.h -> kernel_internal.h spots 2018-02-16 10:44:29 -05:00
thread_abort.c kernel: Allow k_thread_abort(_current) from ISRs 2018-02-16 10:44:29 -05:00
timer.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
userspace.c dma: add system calls for dma_start/dma_stop 2018-02-12 19:24:25 -05:00
userspace_handler.c userspace: assign thread IDs at build time 2017-11-03 11:29:23 -07:00
version.c kernel: version: no need to store version in RAM 2017-09-07 16:34:50 -07:00
work_q.c work_q: Correctly clear pending flag in delayed work queue, update docs 2018-02-13 18:08:57 -05:00