diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 2008-11-10 03:38:54 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 2008-11-10 03:38:54 +0000 |
commit | 874c44db08baab0dea02b89f0b861d76401c95ec (patch) | |
tree | 1cebcb6f6278d607ead4d8ee10a20bb2650487d5 | |
parent | f211a8718e3204dd69afba08b87cbf81dc481834 (diff) |
same vmspace song and dance as in kern_sysctl.c 1.167; ok kurt
-rw-r--r-- | sys/miscfs/procfs/procfs_cmdline.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/sys/miscfs/procfs/procfs_cmdline.c b/sys/miscfs/procfs/procfs_cmdline.c index c6a1209043a..29accc47c49 100644 --- a/sys/miscfs/procfs/procfs_cmdline.c +++ b/sys/miscfs/procfs/procfs_cmdline.c @@ -1,4 +1,4 @@ -/* $OpenBSD: procfs_cmdline.c,v 1.8 2007/06/18 08:30:07 jasper Exp $ */ +/* $OpenBSD: procfs_cmdline.c,v 1.9 2008/11/10 03:38:53 deraadt Exp $ */ /* $NetBSD: procfs_cmdline.c,v 1.3 1999/03/13 22:26:48 thorpej Exp $ */ /* @@ -60,6 +60,7 @@ procfs_docmdline(struct proc *curp, struct proc *p, struct pfsnode *pfs, struct size_t len, xlen, upper_bound; struct uio auio; struct iovec aiov; + struct vmspace *vm; vaddr_t argv; char *arg; @@ -102,7 +103,8 @@ procfs_docmdline(struct proc *curp, struct proc *p, struct pfsnode *pfs, struct free(arg, M_TEMP); return (EFAULT); } - p->p_vmspace->vm_refcnt++; /* XXX */ + vm = p->p_vmspace; + vm->vm_refcnt++; /* XXX */ /* * Read in the ps_strings structure. @@ -116,7 +118,7 @@ procfs_docmdline(struct proc *curp, struct proc *p, struct pfsnode *pfs, struct auio.uio_segflg = UIO_SYSSPACE; auio.uio_rw = UIO_READ; auio.uio_procp = NULL; - error = uvm_io(&p->p_vmspace->vm_map, &auio, 0); + error = uvm_io(&vm->vm_map, &auio, 0); if (error) goto bad; @@ -132,7 +134,7 @@ procfs_docmdline(struct proc *curp, struct proc *p, struct pfsnode *pfs, struct auio.uio_segflg = UIO_SYSSPACE; auio.uio_rw = UIO_READ; auio.uio_procp = NULL; - error = uvm_io(&p->p_vmspace->vm_map, &auio, 0); + error = uvm_io(&vm->vm_map, &auio, 0); if (error) goto bad; @@ -155,7 +157,7 @@ procfs_docmdline(struct proc *curp, struct proc *p, struct pfsnode *pfs, struct auio.uio_segflg = UIO_SYSSPACE; auio.uio_rw = UIO_READ; auio.uio_procp = NULL; - error = uvm_io(&p->p_vmspace->vm_map, &auio, 0); + error = uvm_io(&vm->vm_map, &auio, 0); if (error) goto bad; @@ -178,7 +180,7 @@ procfs_docmdline(struct proc *curp, struct proc *p, struct pfsnode *pfs, struct bad: - uvmspace_free(p->p_vmspace); + uvmspace_free(vm); free(arg, M_TEMP); return (error); } |