Date: Mon, 8 Jan 2001 13:32:43 -0800 (PST) From: Ben Jackson <ben@ben.com> To: Thomas Zenker <thz@Lennartz-electronic.de> Cc: freebsd-stable@FreeBSD.ORG Subject: Re: SIGSEGV can be blocked!? Message-ID: <200101082132.f08LWhL18526@saturn.home.ben.com> In-Reply-To: <20010108161854.A3547@mezcal.tue.le> from Thomas Zenker at "Jan 8, 2001 04:18:55 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
> 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. --Ben To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200101082132.f08LWhL18526>