diff options
| author | Robert Watson <rwatson@FreeBSD.org> | 2001-09-26 20:08:02 +0000 |
|---|---|---|
| committer | Robert Watson <rwatson@FreeBSD.org> | 2001-09-26 20:08:02 +0000 |
| commit | 1851c8fd4126a03ad45c459a07578cf7d0c10d93 (patch) | |
| tree | 8352a9f283b9b7f6749fa936df0035f5f1bba840 /sys | |
| parent | 785f9ffca3abed59f938ff9a147467065aa596ee (diff) | |
Notes
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/amd64/amd64/mem.c | 12 | ||||
| -rw-r--r-- | sys/i386/i386/mem.c | 12 |
2 files changed, 16 insertions, 8 deletions
diff --git a/sys/amd64/amd64/mem.c b/sys/amd64/amd64/mem.c index 48ecff8a3190..c8fdd2a4f008 100644 --- a/sys/amd64/amd64/mem.c +++ b/sys/amd64/amd64/mem.c @@ -115,15 +115,19 @@ mmopen(dev_t dev, int flags, int fmt, struct thread *td) switch (minor(dev)) { case 0: case 1: - if ((flags & FWRITE) && securelevel > 0) - return (EPERM); + if (flags & FWRITE) { + error = securelevel_gt(td->td_proc->p_ucred, 0); + if (error != 0) + return (error); + } break; case 14: error = suser_td(td); if (error != 0) return (error); - if (securelevel > 0) - return (EPERM); + error = securelevel_gt(td->td_proc->p_ucred, 0); + if (error != 0) + return (error); td->td_frame->tf_eflags |= PSL_IOPL; break; } diff --git a/sys/i386/i386/mem.c b/sys/i386/i386/mem.c index 48ecff8a3190..c8fdd2a4f008 100644 --- a/sys/i386/i386/mem.c +++ b/sys/i386/i386/mem.c @@ -115,15 +115,19 @@ mmopen(dev_t dev, int flags, int fmt, struct thread *td) switch (minor(dev)) { case 0: case 1: - if ((flags & FWRITE) && securelevel > 0) - return (EPERM); + if (flags & FWRITE) { + error = securelevel_gt(td->td_proc->p_ucred, 0); + if (error != 0) + return (error); + } break; case 14: error = suser_td(td); if (error != 0) return (error); - if (securelevel > 0) - return (EPERM); + error = securelevel_gt(td->td_proc->p_ucred, 0); + if (error != 0) + return (error); td->td_frame->tf_eflags |= PSL_IOPL; break; } |
