Page MenuHomeFreeBSD

Fix fault_type handling in vm_map_lookup().
ClosedPublic

Authored by markj on Dec 4 2019, 8:14 PM.
Tags
None
Referenced Files
F153164659: D22683.id65340.diff
Sun, Apr 19, 1:36 PM
F153152560: D22683.id65240.diff
Sun, Apr 19, 12:13 PM
F153110103: D22683.id.diff
Sun, Apr 19, 5:38 AM
Unknown Object (File)
Fri, Apr 17, 3:43 AM
Unknown Object (File)
Sun, Apr 12, 5:27 AM
Unknown Object (File)
Sat, Apr 11, 9:49 AM
Unknown Object (File)
Sun, Mar 29, 12:44 PM
Unknown Object (File)
Sat, Mar 28, 4:02 PM
Subscribers

Details

Summary

Suppose that the map entry is wired, so that we later assign
fault_type = entry->protection. Suppose further that we jump back to
RetryLookup. Then fault_type will no longer contain the original
fault protection mask.

I think this is mostly harmless from a correctness standpoint. We end
up with a fault_type that is a superset of its correct value. We may
trigger a copy-on-write update to the entry while handling a read fault,
or we may end up returning KERN_PROTECTION_FAILURE for a fault that
should have succeeded if the entry protections change while the map lock
was dropped.

Submitted by: Wuyang Chung <wuyang.chung1@gmail.com>

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 27963
Build 26129: arc lint + arc unit