priv: Define and use PRIV_SETHOSTNAME
authorMichael Neumann <mneumann@ntecs.de>
Sun, 12 Jul 2009 22:16:27 +0000 (00:16 +0200)
committerMichael Neumann <mneumann@ntecs.de>
Sun, 12 Jul 2009 22:16:27 +0000 (00:16 +0200)
sys/emulation/43bsd/43bsd_hostinfo.c
sys/kern/kern_jail.c
sys/sys/priv.h

index 21bedfd..35e5d40 100644 (file)
@@ -85,7 +85,7 @@ sys_osethostname(struct sethostname_args *uap)
        KKASSERT(p);
        name[0] = CTL_KERN;
        name[1] = KERN_HOSTNAME;
-       error = priv_check_cred(p->p_ucred, PRIV_ROOT, PRISON_ROOT);
+       error = priv_check_cred(p->p_ucred, PRIV_SETHOSTNAME, 0);
        if (error)
                return (error);
        len = MIN(uap->len, MAXHOSTNAMELEN);
index 5a0852d..cb19b62 100644 (file)
@@ -700,6 +700,8 @@ prison_priv_check(struct ucred *cred, int priv)
 
        case PRIV_VARSYM_SYS:
 
+       case PRIV_SETHOSTNAME:
+
                return (0);
 
        case PRIV_UFS_QUOTAON:
index 65624ed..430e19f 100644 (file)
@@ -85,7 +85,8 @@
 #define        PRIV_SETTIMEOFDAY       18      /* Can call settimeofday. */
 #define        PRIV_SETHOSTID          19      /* Can call sethostid. */
 #define        PRIV_SETDOMAINNAME      20      /* Can call setdomainname. */
-#define        PRIV_VARSYM_SYS         21      /* Can varsym_set(VARSYM_SYS, ...) */
+#define        PRIV_SETHOSTNAME        21      /* Can call sethostname. */
+#define        PRIV_VARSYM_SYS         22      /* Can varsym_set(VARSYM_SYS, ...) */
 
 /*
  * Audit subsystem privileges.