kernel/vm: Fix area_for with PROT_NONE address
Do not assume "no user protection" means "kernel area". This allows calls to `area_for` for addresses with protection 0 to work properly. Change-Id: I54cbcc154d10b63359a2e1233f0c0f45d0d8e21e Reviewed-on: https://review.haiku-os.org/c/haiku/+/6388 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
This commit is contained in:
parent
786c14d06d
commit
412bcb11fd
@ -3810,7 +3810,8 @@ vm_area_for(addr_t address, bool kernel)
|
||||
|
||||
VMArea* area = locker.AddressSpace()->LookupArea(address);
|
||||
if (area != NULL) {
|
||||
if (!kernel && (area->protection & (B_READ_AREA | B_WRITE_AREA)) == 0)
|
||||
if (!kernel && (area->protection & (B_READ_AREA | B_WRITE_AREA)) == 0
|
||||
&& (area->protection & B_KERNEL_AREA) != 0)
|
||||
return B_ERROR;
|
||||
|
||||
return area->id;
|
||||
|
Loading…
x
Reference in New Issue
Block a user