From 13bba0f1a042803c0d4e5135d0d34ae838a3f9c3 Mon Sep 17 00:00:00 2001 From: Jacques Vidrine Date: Fri, 3 Oct 2003 13:07:38 +0000 Subject: Merge from RELENG_4: kern_subr.c 1.31.2.3, procfs_dbregs.c 1.4.2.4, procfs_fpregs.c 1.11.2.4, procfs_regs.c 1.10.2.4, procfs_rlimit.c 1.5.2.1, procfs_status.c 1.20.2.5, uio.h 1.11.2.2, linprocfs_misc.c 1.3.2.9. Correct several integer underflows/overflows in procfs and linprocfs. --- sys/miscfs/procfs/procfs_regs.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'sys/miscfs/procfs/procfs_regs.c') diff --git a/sys/miscfs/procfs/procfs_regs.c b/sys/miscfs/procfs/procfs_regs.c index ccde00af6da5..8604d0a4a9a7 100644 --- a/sys/miscfs/procfs/procfs_regs.c +++ b/sys/miscfs/procfs/procfs_regs.c @@ -65,22 +65,12 @@ procfs_doregs(curp, p, pfs, uio) return EAGAIN; if (!CHECKIO(curp, p) || p_trespass(curp, p)) return EPERM; - kl = sizeof(r); - kv = (char *) &r; - - kv += uio->uio_offset; - kl -= uio->uio_offset; - if (kl > uio->uio_resid) - kl = uio->uio_resid; PHOLD(p); - if (kl < 0) - error = EINVAL; - else - error = procfs_read_regs(p, &r); + error = procfs_read_regs(p, &r); if (error == 0) - error = uiomove(kv, kl, uio); + error = uiomove(&r, sizeof(r), uio); if (error == 0 && uio->uio_rw == UIO_WRITE) { if (p->p_stat != SSTOP) error = EBUSY; -- cgit v1.2.3