summaryrefslogtreecommitdiff
path: root/sys/kern/kern_linker.c
diff options
context:
space:
mode:
authorAndrew R. Reiter <arr@FreeBSD.org>2002-03-20 16:03:42 +0000
committerAndrew R. Reiter <arr@FreeBSD.org>2002-03-20 16:03:42 +0000
commitc457a4403ac325746b9ca7eb2e304c4bb605bbd2 (patch)
treec03c716985325fecd5970a187442b58a772cb58b /sys/kern/kern_linker.c
parentf0f3379ed544327e07c1d56ef38a1fd97c157c7d (diff)
Notes
Diffstat (limited to 'sys/kern/kern_linker.c')
-rw-r--r--sys/kern/kern_linker.c16
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;