priv: Narrow down privileges
authorMichael Neumann <mneumann@ntecs.de>
Thu, 18 Jun 2009 10:01:19 +0000 (12:01 +0200)
committerMichael Neumann <mneumann@ntecs.de>
Thu, 18 Jun 2009 10:01:19 +0000 (12:01 +0200)
Leave PRISON_ROOT for now despite having a separate privilege for
the prison case. PRISON_ROOT will be removed in a later step, once
all jail privileges have been determined.

sys/kern/kern_sysctl.c

index 72524c4..9a76e92 100644 (file)
@@ -1180,7 +1180,9 @@ sysctl_root(SYSCTL_HANDLER_ARGS)
 
        /* Most likely only root can write */
        if (!(oid->oid_kind & CTLFLAG_ANYBODY) && req->newptr && p &&
-           (error = priv_check_cred(p->p_ucred, PRIV_ROOT,
+           (error = priv_check_cred(p->p_ucred,
+            (oid->oid_kind & CTLFLAG_PRISON) ? PRIV_SYSCTL_WRITEJAIL :
+                                               PRIV_SYSCTL_WRITE,
             (oid->oid_kind & CTLFLAG_PRISON) ? PRISON_ROOT : 0)))
                return (error);