Date: Wed, 26 Sep 2007 10:42:57 -0400 From: John Baldwin <jhb@freebsd.org> To: Roman Divacky <rdivacky@freebsd.org> Cc: Jesper Brix Rosenkilde <jbr@freebsd.org>, Perforce Change Reviews <perforce@freebsd.org> Subject: Re: PERFORCE change 125277 for review Message-ID: <200709261042.58487.jhb@freebsd.org> In-Reply-To: <20070818084608.GA70909@freebsd.org> References: <200708172057.l7HKvMhw000824@repoman.freebsd.org> <20070818084608.GA70909@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Saturday 18 August 2007 04:46:08 am Roman Divacky wrote:
> > struct image_params *imgp;
> > {
> > int error;
> > + struct proc *p = imgp->proc;
> > vm_map_t map = &imgp->proc->p_vmspace->vm_map;
> > vm_offset_t *addr = &imgp->proc->p_usrsysshm;
> > - int test = 42;
> > + struct sysshm outsysshm;
> >
> > error = vm_map_sysshm(map, addr, 42);
> >
> > - copyout((caddr_t) &test, (caddr_t) *addr, sizeof(int));
> > + outsysshm.pid = p->p_pid;
> > + strncpy(outsysshm.progtitle, p->p_comm, MAXCOMLEN);
> > + strncpy(outsysshm.proctitle, "\0", 1);
> > + copyout((caddr_t) &outsysshm, (caddr_t) *addr, sizeof(struct sysshm));
>
>
> the p->p_comm can be changed under your hands. you need to lock "p" and obtain
> local copy and copyout the local copy.
Actually, it is only set during exec() for userland processes, so this is
probably fine.
--
John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200709261042.58487.jhb>
