4986a9a3fd
This reverts parts of hrev52546 that removed the B_KERNEL_AREA protection flag and replaced it with an address space comparison. Checking for areas in the kernel address space inside a user address space does not work, as areas can only ever belong to one address space. This rendered these checks ineffective and allowed to unmap, delete or resize kernel managed areas from their respective userland teams. That protection was meant to be applied to the team user data area which was introduced to reduce the kernel to userland overhead by directly sharing some data between the two. It was intended to be set up in such a manner that this is safe on the kernel side and the B_KERNEL_AREA flag was introduced specifically for this purpose. Incidentally the actual application of the B_KERNEL_AREA flag on the team user data area was apparently forgotten in the original commit. The absence of that protection allowed applications to induce KDLs by modifying the user area and generating a signal for example. This change restores the B_KERNEL_AREA flag and also applies it to the team user data area. Change-Id: I993bb1cf7c6ae10085100db7df7cc23fe66f4edd Reviewed-on: https://review.haiku-os.org/c/haiku/+/2836 Reviewed-by: waddlesplash <waddlesplash@gmail.com> |
||
---|---|---|
.. | ||
arch | ||
posix | ||
architecture_private.h | ||
commpage_defs.h | ||
computed_asm_macros.h | ||
convertutf.h | ||
ddm_userland_interface_defs.h | ||
device_manager_defs.h | ||
directories.h | ||
disk_device_types.h | ||
elf_private.h | ||
extended_system_info_defs.h | ||
find_directory_private.h | ||
generic_syscall_defs.h | ||
image_defs.h | ||
node_monitor_private.h | ||
pe_common.h | ||
real_time_data.h | ||
safemode_defs.h | ||
scheduler_defs.h | ||
signal_defs.h | ||
spinlock_contention.h | ||
symbol_versioning.h | ||
syscall_load_image.h | ||
syscall_process_info.h | ||
syscalls.h | ||
system_info.h | ||
system_profiler_defs.h | ||
thread_defs.h | ||
tls.h | ||
user_mutex_defs.h | ||
user_runtime.h | ||
user_thread_defs.h | ||
user_timer_defs.h | ||
vfs_defs.h | ||
vm_defs.h |