From owner-freebsd-current Wed Nov 24 5:32:25 1999 Delivered-To: freebsd-current@freebsd.org Received: from mailman.zeta.org.au (mailman.zeta.org.au [203.26.10.16]) by hub.freebsd.org (Postfix) with ESMTP id 59E8715209; Wed, 24 Nov 1999 05:32:17 -0800 (PST) (envelope-from bde@zeta.org.au) Received: from p115-ts5.syd2.zeta.org.au (beefcake.zeta.org.au [203.26.10.12]) by mailman.zeta.org.au (8.8.7/8.8.7) with ESMTP id AAA18334; Thu, 25 Nov 1999 00:39:47 +1100 Date: Thu, 25 Nov 1999 00:31:59 +1100 (EST) From: Bruce Evans X-Sender: bde@alphplex.bde.org To: Brian Fundakowski Feldman Cc: Peter Wemm , "Alexander N. Kabaev" , Jean-Marc Zucconi , marcel@FreeBSD.org, pho@FreeBSD.org, phk@FreeBSD.org, current@FreeBSD.org Subject: Re: Netscape and -current In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Tue, 23 Nov 1999, Brian Fundakowski Feldman wrote: > 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. > > ... > > #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 I was in a hurry and didn't notice that my inadvertent fix wasn't complete :-). > 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 It could be reading from anywhere with an invalid sigcntxp. Reading from certain locations may cause a panic. > 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? I plan to use copying and delete the useracc()'s. This will be much faster Checking the magic number is inconvenient, since a copyin() with size (max of the 2 context sizes) may fail and a copyin() with size (min of the 2 context sizes) would leave us with an extra copyin() to do in the usual (new sigreturn()) case. I'll try using fuword() to read the magic byte. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message