summaryrefslogtreecommitdiffstats
path: root/sys/compat
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2002-09-07 22:31:44 +0000
committerpeter <peter@FreeBSD.org>2002-09-07 22:31:44 +0000
commit21b23e4fe817edef196743750867fa0f6120c902 (patch)
treefdac2ae32654c934bc9874ffbac7b508aeca7737 /sys/compat
parent640af1c480488f92d6952a7db1bdd20d34d23cca (diff)
downloadFreeBSD-src-21b23e4fe817edef196743750867fa0f6120c902.zip
FreeBSD-src-21b23e4fe817edef196743750867fa0f6120c902.tar.gz
Tidy up some loose ends that bde pointed out. caddr_t bad, ok?
Move fill_kinfo_proc to before we copy the results instead of after the copy and too late. There is still more to do here.
Diffstat (limited to 'sys/compat')
-rw-r--r--sys/compat/pecoff/imgact_pecoff.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/sys/compat/pecoff/imgact_pecoff.c b/sys/compat/pecoff/imgact_pecoff.c
index d245fee..812aa5e 100644
--- a/sys/compat/pecoff/imgact_pecoff.c
+++ b/sys/compat/pecoff/imgact_pecoff.c
@@ -172,7 +172,7 @@ pecoff_coredump(register struct thread * td, register struct vnode * vp,
register struct ucred *cred = td->td_ucred;
struct proc *p = td->td_proc;
register struct vmspace *vm = p->p_vmspace;
- caddr_t tempuser;
+ char *tempuser;
int error;
#ifdef PECOFF_DEBUG
struct vm_map *map;
@@ -187,15 +187,14 @@ pecoff_coredump(register struct thread * td, register struct vnode * vp,
M_WAITOK | M_ZERO);
if (tempuser == NULL)
return (ENOMEM);
+ PROC_LOCK(p);
+ fill_kinfo_proc(p, &p->p_uarea->u_kproc);
+ PROC_UNLOCK(p);
bcopy(p->p_uarea, tempuser, sizeof(struct user));
bcopy(td->td_frame,
tempuser + ctob(uarea_pages) +
- ((caddr_t) td->td_frame - (caddr_t) td->td_kstack),
+ ((caddr_t)td->td_frame - (caddr_t)td->td_kstack),
sizeof(struct trapframe));
- PROC_LOCK(p);
- fill_kinfo_proc(p, &p->p_uarea->u_kproc);
- PROC_UNLOCK(p);
-
#if PECOFF_DEBUG
fill_regs(td, &regs);
printf("EIP%x\n", regs.r_eip);
@@ -205,7 +204,7 @@ pecoff_coredump(register struct thread * td, register struct vnode * vp,
ent = &map->header;
printf("%p %p %p\n", ent, ent->prev, ent->next);
#endif
- error = vn_rdwr(UIO_WRITE, vp, (caddr_t) tempuser,
+ error = vn_rdwr(UIO_WRITE, vp, (caddr_t)tempuser,
ctob(uarea_pages + kstack_pages),
(off_t)0, UIO_SYSSPACE, IO_UNIT, cred, NOCRED,
(int *)NULL, td);
OpenPOWER on IntegriCloud