kern_sysctl.c (71999) | kern_sysctl.c (73971) |
---|---|
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_sysctl.c 71999 2001-02-04 13:13:25Z phk $ | 40 * $FreeBSD: head/sys/kern/kern_sysctl.c 73971 2001-03-08 01:20:43Z tmm $ |
41 */ 42 43#include "opt_compat.h" 44 45#include <sys/param.h> 46#include <sys/systm.h> 47#include <sys/kernel.h> 48#include <sys/sysctl.h> --- 763 unchanged lines hidden (view full) --- 812 */ 813static int 814sysctl_old_kernel(struct sysctl_req *req, const void *p, size_t l) 815{ 816 size_t i = 0; 817 818 if (req->oldptr) { 819 i = l; | 41 */ 42 43#include "opt_compat.h" 44 45#include <sys/param.h> 46#include <sys/systm.h> 47#include <sys/kernel.h> 48#include <sys/sysctl.h> --- 763 unchanged lines hidden (view full) --- 812 */ 813static int 814sysctl_old_kernel(struct sysctl_req *req, const void *p, size_t l) 815{ 816 size_t i = 0; 817 818 if (req->oldptr) { 819 i = l; |
820 if (i > req->oldlen - req->oldidx) 821 i = req->oldlen - req->oldidx; | 820 if (req->oldlen <= req->oldidx) 821 i = 0; 822 else 823 if (i > req->oldlen - req->oldidx) 824 i = req->oldlen - req->oldidx; |
822 if (i > 0) 823 bcopy(p, (char *)req->oldptr + req->oldidx, i); 824 } 825 req->oldidx += l; 826 if (req->oldptr && i != l) 827 return (ENOMEM); 828 return (0); 829} --- 79 unchanged lines hidden (view full) --- 909 size_t i = 0; 910 911 if (req->lock == 1 && req->oldptr) { 912 vslock(req->oldptr, req->oldlen); 913 req->lock = 2; 914 } 915 if (req->oldptr) { 916 i = l; | 825 if (i > 0) 826 bcopy(p, (char *)req->oldptr + req->oldidx, i); 827 } 828 req->oldidx += l; 829 if (req->oldptr && i != l) 830 return (ENOMEM); 831 return (0); 832} --- 79 unchanged lines hidden (view full) --- 912 size_t i = 0; 913 914 if (req->lock == 1 && req->oldptr) { 915 vslock(req->oldptr, req->oldlen); 916 req->lock = 2; 917 } 918 if (req->oldptr) { 919 i = l; |
917 if (i > req->oldlen - req->oldidx) 918 i = req->oldlen - req->oldidx; | 920 if (req->oldlen <= req->oldidx) 921 i = 0; 922 else 923 if (i > req->oldlen - req->oldidx) 924 i = req->oldlen - req->oldidx; |
919 if (i > 0) 920 error = copyout(p, (char *)req->oldptr + req->oldidx, 921 i); 922 } 923 req->oldidx += l; 924 if (error) 925 return (error); 926 if (req->oldptr && i < l) --- 427 unchanged lines hidden --- | 925 if (i > 0) 926 error = copyout(p, (char *)req->oldptr + req->oldidx, 927 i); 928 } 929 req->oldidx += l; 930 if (error) 931 return (error); 932 if (req->oldptr && i < l) --- 427 unchanged lines hidden --- |