From owner-freebsd-stable Tue Jan 9 0:19:24 2001 Delivered-To: freebsd-stable@freebsd.org Received: from mail.tue.le (p3EE325B1.dip.t-dialin.net [62.227.37.177]) by hub.freebsd.org (Postfix) with ESMTP id 598FF37B400 for ; Tue, 9 Jan 2001 00:19:05 -0800 (PST) Received: from mezcal.tue.le (mezcal.tue.le [192.168.201.20]) by mail.tue.le (8.8.8/8.8.8) with ESMTP id JAA27431 for ; Tue, 9 Jan 2001 09:00:33 +0100 (CET) (envelope-from thz@mezcal.tue.le) Received: (from thz@localhost) by mezcal.tue.le (8.11.1/8.11.1) id f0980WW00827 for freebsd-stable@freebsd.org; Tue, 9 Jan 2001 09:00:32 +0100 (CET) (envelope-from thz) Date: Tue, 9 Jan 2001 09:00:32 +0100 From: Thomas Zenker To: freebsd-stable@freebsd.org Subject: Re: SIGSEGV can be blocked!? Message-ID: <20010109090032.A795@mezcal.tue.le> References: <20010108161854.A3547@mezcal.tue.le> <200101082132.f08LWhL18526@saturn.home.ben.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 1.0.1i In-Reply-To: <200101082132.f08LWhL18526@saturn.home.ben.com>; from ben@ben.com on Mon, Jan 08, 2001 at 01:32:43PM -0800 Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Mon, Jan 08, 2001 at 01:32:43PM -0800, Ben Jackson wrote: > > Blocking SIGSEGV with sigprocmask does really BLOCK it. > > I think, this is a bug. I discovered this because I wanted to > > provoke a core dump by a write to (int *)0, but the process got hung, > > The instruction that caused the SEGV is going to restart after any handler > runs because the handler may have mapped the page that caused the fault. > > On other operating systems you can block SEGV for purposes of asynchronous > signals (ie `kill -SEGV') but not for synchronous signals. To quote from > the Solaris sigprocmask manpage: > > Signals that are generated synchronously should not be > masked. If such a signal is blocked and delivered, the > receiving process is killed. > > and indeed a test program shows that you still get SEGV in that case. > You can still shoot yourself in the foot with a SEGV handler that doesn't > eliminate the fault. there is no handler for SEGV - it is simply blocked, if QUIT have been blocked the machine would lockup. -- Thomas Zenker c/o Lennartz electronic GmbH Bismarckstrasse 136, D-72072 Tuebingen, Germany Phone: +49-(0)7071-93550 Email: thz@lennartz-electronic.de To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message