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);
|
VMArea* area = locker.AddressSpace()->LookupArea(address);
|
||||||
if (area != NULL) {
|
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 B_ERROR;
|
||||||
|
|
||||||
return area->id;
|
return area->id;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user