mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
It's not entirely obvious that PGEX_I must be zero if no-execute is neither
supported nor enabled. Just to be sure, verify that no-execute is enabled before passing VM_PROT_EXECUTE to vm_fault(). Suggested by: tegge@
This commit is contained in:
parent
1e6fdb7e32
commit
3173042ecc
1 changed files with 2 additions and 2 deletions
|
|
@ -568,11 +568,11 @@ trap_pfault(frame, usermode)
|
|||
|
||||
/*
|
||||
* PGEX_I is defined only if the execute disable bit capability is
|
||||
* supported and enabled; otherwise, that bit is reserved, i.e., zero.
|
||||
* supported and enabled.
|
||||
*/
|
||||
if (frame->tf_err & PGEX_W)
|
||||
ftype = VM_PROT_WRITE;
|
||||
else if (frame->tf_err & PGEX_I)
|
||||
else if ((frame->tf_err & PGEX_I) && pg_nx != 0)
|
||||
ftype = VM_PROT_EXECUTE;
|
||||
else
|
||||
ftype = VM_PROT_READ;
|
||||
|
|
|
|||
Loading…
Reference in a new issue