Deleted Added
full compact
kern_sysctl.c (3038) kern_sysctl.c (3308)
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 * Redistribution and use in source and binary forms, with or without

--- 20 unchanged lines hidden (view full) ---

29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE.
35 *
36 * @(#)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 * Redistribution and use in source and binary forms, with or without

--- 20 unchanged lines hidden (view full) ---

29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE.
35 *
36 * @(#)kern_sysctl.c 8.4 (Berkeley) 4/14/94
37 * $Id: kern_sysctl.c,v 1.14 1994/09/21 03:46:46 wollman Exp $
37 * $Id: kern_sysctl.c,v 1.15 1994/09/23 19:07:17 wollman Exp $
38 */
39
40/*
41 * sysctl system call.
42 */
43
44#include <sys/param.h>
45#include <sys/systm.h>

--- 51 unchanged lines hidden (view full) ---

97
98 if (uap->new != NULL && (error = suser(p->p_ucred, &p->p_acflag)))
99 return (error);
100 /*
101 * all top-level sysctl names are non-terminal
102 */
103 if (uap->namelen > CTL_MAXNAME || uap->namelen < 2)
104 return (EINVAL);
38 */
39
40/*
41 * sysctl system call.
42 */
43
44#include <sys/param.h>
45#include <sys/systm.h>

--- 51 unchanged lines hidden (view full) ---

97
98 if (uap->new != NULL && (error = suser(p->p_ucred, &p->p_acflag)))
99 return (error);
100 /*
101 * all top-level sysctl names are non-terminal
102 */
103 if (uap->namelen > CTL_MAXNAME || uap->namelen < 2)
104 return (EINVAL);
105 if (error = copyin(uap->name, &name, uap->namelen * sizeof(int)))
105 error = copyin(uap->name, &name, uap->namelen * sizeof(int));
106 if (error)
106 return (error);
107
108 switch (name[0]) {
109 case CTL_KERN:
110 fn = kern_sysctl;
111 if (name[1] != KERN_VNODE) /* XXX */
112 dolock = 0;
113 break;

--- 452 unchanged lines hidden (view full) ---

566
567 /*
568 * first copyout filehead
569 */
570 if (buflen < sizeof(filehead)) {
571 *sizep = 0;
572 return (0);
573 }
107 return (error);
108
109 switch (name[0]) {
110 case CTL_KERN:
111 fn = kern_sysctl;
112 if (name[1] != KERN_VNODE) /* XXX */
113 dolock = 0;
114 break;

--- 452 unchanged lines hidden (view full) ---

567
568 /*
569 * first copyout filehead
570 */
571 if (buflen < sizeof(filehead)) {
572 *sizep = 0;
573 return (0);
574 }
574 if (error = copyout((caddr_t)&filehead, where, sizeof(filehead)))
575 error = copyout((caddr_t)&filehead, where, sizeof(filehead));
576 if (error)
575 return (error);
576 buflen -= sizeof(filehead);
577 where += sizeof(filehead);
578
579 /*
580 * followed by an array of file structures
581 */
582 for (fp = filehead; fp != NULL; fp = fp->f_filef) {
583 if (buflen < sizeof(struct file)) {
584 *sizep = where - start;
585 return (ENOMEM);
586 }
577 return (error);
578 buflen -= sizeof(filehead);
579 where += sizeof(filehead);
580
581 /*
582 * followed by an array of file structures
583 */
584 for (fp = filehead; fp != NULL; fp = fp->f_filef) {
585 if (buflen < sizeof(struct file)) {
586 *sizep = where - start;
587 return (ENOMEM);
588 }
587 if (error = copyout((caddr_t)fp, where, sizeof (struct file)))
589 error = copyout((caddr_t)fp, where, sizeof (struct file));
590 if (error)
588 return (error);
589 buflen -= sizeof(struct file);
590 where += sizeof(struct file);
591 }
592 *sizep = where - start;
593 return (0);
594}
595

--- 60 unchanged lines hidden (view full) ---

656
657 case KERN_PROC_RUID:
658 if (p->p_cred->p_ruid != (uid_t)name[1])
659 continue;
660 break;
661 }
662 if (buflen >= sizeof(struct kinfo_proc)) {
663 fill_eproc(p, &eproc);
591 return (error);
592 buflen -= sizeof(struct file);
593 where += sizeof(struct file);
594 }
595 *sizep = where - start;
596 return (0);
597}
598

--- 60 unchanged lines hidden (view full) ---

659
660 case KERN_PROC_RUID:
661 if (p->p_cred->p_ruid != (uid_t)name[1])
662 continue;
663 break;
664 }
665 if (buflen >= sizeof(struct kinfo_proc)) {
666 fill_eproc(p, &eproc);
664 if (error = copyout((caddr_t)p, &dp->kp_proc,
665 sizeof(struct proc)))
667 error = copyout((caddr_t)p, &dp->kp_proc,
668 sizeof(struct proc));
669 if (error)
666 return (error);
670 return (error);
667 if (error = copyout((caddr_t)&eproc, &dp->kp_eproc,
668 sizeof(eproc)))
671 error = copyout((caddr_t)&eproc, &dp->kp_eproc,
672 sizeof(eproc));
673 if (error)
669 return (error);
670 dp++;
671 buflen -= sizeof(struct kinfo_proc);
672 }
673 needed += sizeof(struct kinfo_proc);
674 }
675 if (doingzomb == 0) {
676 p = zombproc;

--- 158 unchanged lines hidden ---
674 return (error);
675 dp++;
676 buflen -= sizeof(struct kinfo_proc);
677 }
678 needed += sizeof(struct kinfo_proc);
679 }
680 if (doingzomb == 0) {
681 p = zombproc;

--- 158 unchanged lines hidden ---