kern_mib.c (83990) | kern_mib.c (84611) |
---|---|
1/*- 2 * Copyright (c) 1982, 1986, 1989, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Mike Karels at Berkeley Software Design, Inc. 7 * 8 * Quite extensively rewritten by Poul-Henning Kamp of the FreeBSD --- 23 unchanged lines hidden (view full) --- 32 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 33 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 34 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 35 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 36 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 37 * SUCH DAMAGE. 38 * 39 * @(#)kern_sysctl.c 8.4 (Berkeley) 4/14/94 | 1/*- 2 * Copyright (c) 1982, 1986, 1989, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Mike Karels at Berkeley Software Design, Inc. 7 * 8 * Quite extensively rewritten by Poul-Henning Kamp of the FreeBSD --- 23 unchanged lines hidden (view full) --- 32 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 33 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 34 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 35 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 36 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 37 * SUCH DAMAGE. 38 * 39 * @(#)kern_sysctl.c 8.4 (Berkeley) 4/14/94 |
40 * $FreeBSD: head/sys/kern/kern_mib.c 83990 2001-09-26 20:39:48Z rwatson $ | 40 * $FreeBSD: head/sys/kern/kern_mib.c 84611 2001-10-07 03:51:22Z rwatson $ |
41 */ 42 | 41 */ 42 |
43#include "opt_global.h" 44 |
|
43#include <sys/param.h> 44#include <sys/kernel.h> 45#include <sys/systm.h> 46#include <sys/sysctl.h> 47#include <sys/proc.h> 48#include <sys/jail.h> 49#include <sys/smp.h> 50 --- 86 unchanged lines hidden (view full) --- 137 138SYSCTL_INT(_hw, HW_PAGESIZE, pagesize, CTLFLAG_RD, 139 0, PAGE_SIZE, "System memory page size"); 140 141static char machine_arch[] = MACHINE_ARCH; 142SYSCTL_STRING(_hw, HW_MACHINE_ARCH, machine_arch, CTLFLAG_RD, 143 machine_arch, 0, "System architecture"); 144 | 45#include <sys/param.h> 46#include <sys/kernel.h> 47#include <sys/systm.h> 48#include <sys/sysctl.h> 49#include <sys/proc.h> 50#include <sys/jail.h> 51#include <sys/smp.h> 52 --- 86 unchanged lines hidden (view full) --- 139 140SYSCTL_INT(_hw, HW_PAGESIZE, pagesize, CTLFLAG_RD, 141 0, PAGE_SIZE, "System memory page size"); 142 143static char machine_arch[] = MACHINE_ARCH; 144SYSCTL_STRING(_hw, HW_MACHINE_ARCH, machine_arch, CTLFLAG_RD, 145 machine_arch, 0, "System architecture"); 146 |
147#ifdef REGRESSION 148SYSCTL_NODE(, OID_AUTO, regression, CTLFLAG_RW, 0, "Regression test MIB"); 149#endif /* !REGRESSION */ 150 |
|
145char hostname[MAXHOSTNAMELEN]; 146 147static int 148sysctl_hostname(SYSCTL_HANDLER_ARGS) 149{ 150 int error; 151 152 if (jailed(req->p->p_ucred)) { --- 7 unchanged lines hidden (view full) --- 160 hostname, sizeof hostname, req); 161 return (error); 162} 163 164SYSCTL_PROC(_kern, KERN_HOSTNAME, hostname, 165 CTLTYPE_STRING|CTLFLAG_RW|CTLFLAG_PRISON, 166 0, 0, sysctl_hostname, "A", "Hostname"); 167 | 151char hostname[MAXHOSTNAMELEN]; 152 153static int 154sysctl_hostname(SYSCTL_HANDLER_ARGS) 155{ 156 int error; 157 158 if (jailed(req->p->p_ucred)) { --- 7 unchanged lines hidden (view full) --- 166 hostname, sizeof hostname, req); 167 return (error); 168} 169 170SYSCTL_PROC(_kern, KERN_HOSTNAME, hostname, 171 CTLTYPE_STRING|CTLFLAG_RW|CTLFLAG_PRISON, 172 0, 0, sysctl_hostname, "A", "Hostname"); 173 |
174#ifdef REGRESSION 175int regression_securelevel_nonmonotonic=0; 176 177SYSCTL_INT(_regression, OID_AUTO, securelevel_nonmonotonic, CTLFLAG_RW, 178 ®ression_securelevel_nonmonotonic, 0, "securelevel may be lowered"); 179#endif /* !REGRESSION */ 180 |
|
168int securelevel = -1; 169 170static int 171sysctl_kern_securelvl(SYSCTL_HANDLER_ARGS) 172{ 173 int error, level; 174 175 /* --- 9 unchanged lines hidden (view full) --- 185 error = sysctl_handle_int(oidp, &level, 0, req); 186 if (error || !req->newptr) 187 return (error); 188 /* 189 * Permit update only if the new securelevel exceeds the 190 * global level, and local level if any. 191 */ 192 if (req->p->p_ucred->cr_prison != NULL) { | 181int securelevel = -1; 182 183static int 184sysctl_kern_securelvl(SYSCTL_HANDLER_ARGS) 185{ 186 int error, level; 187 188 /* --- 9 unchanged lines hidden (view full) --- 198 error = sysctl_handle_int(oidp, &level, 0, req); 199 if (error || !req->newptr) 200 return (error); 201 /* 202 * Permit update only if the new securelevel exceeds the 203 * global level, and local level if any. 204 */ 205 if (req->p->p_ucred->cr_prison != NULL) { |
206#ifdef REGRESSION 207 if (!regression_securelevel_nonmonotonic) 208#endif /* !REGRESSION */ |
|
193 if (level < imax(securelevel, 194 req->p->p_ucred->cr_prison->pr_securelevel)) 195 return (EPERM); 196 req->p->p_ucred->cr_prison->pr_securelevel = level; 197 } else { | 209 if (level < imax(securelevel, 210 req->p->p_ucred->cr_prison->pr_securelevel)) 211 return (EPERM); 212 req->p->p_ucred->cr_prison->pr_securelevel = level; 213 } else { |
214#ifdef REGRESSION 215 if (!regression_securelevel_nonmonotonic) 216#endif /* !REGRESSION */ |
|
198 if (level < securelevel) 199 return (EPERM); 200 securelevel = level; 201 } 202 return (error); 203} 204 205SYSCTL_PROC(_kern, KERN_SECURELVL, securelevel, --- 77 unchanged lines hidden --- | 217 if (level < securelevel) 218 return (EPERM); 219 securelevel = level; 220 } 221 return (error); 222} 223 224SYSCTL_PROC(_kern, KERN_SECURELVL, securelevel, --- 77 unchanged lines hidden --- |