diff options
| author | Andrew R. Reiter <arr@FreeBSD.org> | 2002-03-20 16:03:42 +0000 |
|---|---|---|
| committer | Andrew R. Reiter <arr@FreeBSD.org> | 2002-03-20 16:03:42 +0000 |
| commit | c457a4403ac325746b9ca7eb2e304c4bb605bbd2 (patch) | |
| tree | c03c716985325fecd5970a187442b58a772cb58b /sys/kern/kern_linker.c | |
| parent | f0f3379ed544327e07c1d56ef38a1fd97c157c7d (diff) | |
Notes
Diffstat (limited to 'sys/kern/kern_linker.c')
| -rw-r--r-- | sys/kern/kern_linker.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/sys/kern/kern_linker.c b/sys/kern/kern_linker.c index 192877c276dc..9d644d289e76 100644 --- a/sys/kern/kern_linker.c +++ b/sys/kern/kern_linker.c @@ -698,11 +698,13 @@ kldload(struct thread *td, struct kldload_args *uap) td->td_retval[0] = -1; - if (securelevel > 0) /* redundant, but that's OK */ - return (EPERM); - mtx_lock(&Giant); + if (securelevel_gt(td->td_ucred, 0) == 0) { + error = EPERM; + goto out; + } + if ((error = suser_xxx(td->td_ucred, NULL, 0)) != 0) goto out; @@ -745,11 +747,13 @@ kldunload(struct thread *td, struct kldunload_args *uap) linker_file_t lf; int error = 0; - if (securelevel > 0) /* redundant, but that's OK */ - return (EPERM); - mtx_lock(&Giant); + if (securelevel_gt(td->td_ucred, 0) == 0) { + error = EPERM; + goto out; + } + if ((error = suser_xxx(td->td_ucred, NULL, 0)) != 0) goto out; |
