diff --git a/src/system/kernel/vm/vm.cpp b/src/system/kernel/vm/vm.cpp index 4ba4e85edf..0fe2eeadd5 100644 --- a/src/system/kernel/vm/vm.cpp +++ b/src/system/kernel/vm/vm.cpp @@ -2055,9 +2055,10 @@ _vm_map_file(team_id team, const char* name, void** _address, uint32 protectionMax = 0; if (mapping != REGION_PRIVATE_MAP) { - protectionMax = protection | B_READ_AREA; if ((openMode & O_ACCMODE) == O_RDWR) - protectionMax |= B_WRITE_AREA; + protectionMax = protection | B_USER_PROTECTION; + else + protectionMax = protection | (B_USER_PROTECTION & ~B_WRITE_AREA); } // get the vnode for the object, this also grabs a ref to it