Date: Tue, 23 Nov 1999 18:12:09 -0500 (EST) From: Brian Fundakowski Feldman <green@FreeBSD.org> To: Bruce Evans <bde@zeta.org.au> Cc: Peter Wemm <peter@netplex.com.au>, "Alexander N. Kabaev" <ak03@gte.com>, Jean-Marc Zucconi <jmz@FreeBSD.org>, marcel@FreeBSD.org, pho@FreeBSD.org, phk@FreeBSD.org, current@FreeBSD.org Subject: Re: Netscape and -current Message-ID: <Pine.BSF.4.10.9911231806200.26192-100000@green.dyndns.org> In-Reply-To: <Pine.BSF.4.10.9911240308020.1224-100000@alphplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 24 Nov 1999, Bruce Evans wrote: > Hmm. My netscape works, but I didn't use merge that commit. I had already > inadvertly fixed the bug in another way while cleaning up. > > Indeed, the proplem is checking the new context before checking that the > context is actually new. > > Here is my version. Hmm... > > int > sigreturn(p, uap) > struct proc *p; > struct sigreturn_args /* { > ucontext_t *ucp; > } */ *uap; > { > struct trapframe *regs; > ucontext_t *ucp; > int cs, eflags; > > #if defined(COMPAT_43) || defined(COMPAT_SUNOS) > if (((struct osigcontext *)uap->sigcntxp)->sc_trapno == 0x01d516) > return (osigreturn(p, (struct osigreturn_args *)uap)); > #endif I don't see how this fixes things, other than hiding it. Since the i386 memory model we use maps kernel and user memory all at the same time, this code is reading directly from user space memory, right? If this is the case, wouldn't a copyin() be the proper thing to do? At least doing the useracc() would be better than doing nothing, wouldn't it? > > ucp = uap-> /* ucp */ sigcntxp; > if (!useracc((caddr_t)ucp, sizeof(*ucp), VM_PROT_READ)) > return (EFAULT); > eflags = ucp->uc_mcontext.mc_eflags; > regs = p->p_md.md_regs; > > Bruce > > -- Brian Fundakowski Feldman \ FreeBSD: The Power to Serve! / green@FreeBSD.org `------------------------------' To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.10.9911231806200.26192-100000>