Deleted Added
full compact
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 &regression_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 ---