Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #24099

Re: signal() anomaly

From Eric Sosman <esosman@ieee-dot-org.invalid>
Newsgroups comp.lang.c
Subject Re: signal() anomaly
Date 2012-08-01 18:07 -0400
Organization A noiseless patient Spider
Message-ID <jvc9aj$eqd$1@dont-email.me> (permalink)
References <jv9e9e$bj3$1@speranza.aioe.org> <jv9l8p$1u2$1@blue-new.rahul.net> <jvbu80$pu5$1@speranza.aioe.org> <50198480.3040408@verizon.net> <jvc4kl$aus$1@speranza.aioe.org>

Show all headers | View raw


On 8/1/2012 4:47 PM, hip cat wrote:
>[...]
> I think Eric was right on the money asking about the return value. If the
> signal() call returns success, but the "ignore" is ignored, I say that's
> a bug in the C library. I think I'll file a bug report against glibc.

     If signal(SIGSEGV, SIG_IGN) does nothing and indicates success,
you may have a case.  But if it can't in fact do anything, the fix
will be to have it return SIG_ERR and tell you so.  That is, you're
still not going to get the signal ignored!  (Nor should you, as has
been pointed out elsethread.)

     You mention glibc, which means you're probably on a POSIX-like
system.  If so, the program's behavior is undefined if SIGSEGV
occurs while it's being ignored -- and among the possible undefined
behaviors is "SIGSEGV crashes the program anyhow."  So from a POSIX
perspective there's no bug: It might be a nice enhancement to have
signal() return SIG_ERR, but returning 0 doesn't reach "bug" level.

     What remains unclear (to me) is how the C Standard rules on this
issue.  We know the behavior is undefined if SIGSEGV goes to a handler
and the handler returns, but SIG_IGN isn't a "handler."  So it's
possible the C Standard and POSIX disagree here -- but it would not
surprise me one little bit to learn that I've overlooked something.

-- 
Eric Sosman
esosman@ieee-dot-org.invalid

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

signal() anomaly hip cat <nospam@nospam.com> - 2012-07-31 20:13 +0000
  Re: signal() anomaly Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-07-31 16:35 -0400
    Re: signal() anomaly hip cat <nospam@nospam.com> - 2012-08-01 18:59 +0000
    Re: signal() anomaly Nick Bowler <nbowler@draconx.ca> - 2012-08-01 20:14 +0000
  Re: signal() anomaly falk@rahul.net (Edward A. Falk) - 2012-07-31 22:12 +0000
    Re: signal() anomaly hip cat <nospam@nospam.com> - 2012-08-01 18:58 +0000
      Re: signal() anomaly James Kuyper <jameskuyper@verizon.net> - 2012-08-01 15:33 -0400
        Re: signal() anomaly hip cat <nospam@nospam.com> - 2012-08-01 20:47 +0000
          Re: signal() anomaly Paul <nospam@needed.com> - 2012-08-01 17:34 -0400
            Re: signal() anomaly Johann Klammer <klammerj@NOSPAM.a1.net> - 2012-08-02 06:34 +0200
              Re: signal() anomaly Paul <nospam@needed.com> - 2012-08-02 07:10 -0400
          Re: signal() anomaly Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-08-01 18:07 -0400
            Re: signal() anomaly Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-08-02 00:15 +0100
              Re: signal() anomaly Nick Bowler <nbowler@draconx.ca> - 2012-08-02 00:05 +0000
                Re: signal() anomaly Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-08-02 02:47 +0100
          Re: signal() anomaly James Kuyper <jameskuyper@verizon.net> - 2012-08-01 18:13 -0400
          Re: signal() anomaly James Kuyper <jameskuyper@verizon.net> - 2012-08-01 18:14 -0400
          Re: signal() anomaly Nobody <nobody@nowhere.com> - 2012-08-02 12:52 +0100
      Re: signal() anomaly Angel <angel+news@spamcop.net> - 2012-08-01 19:41 +0000
      Re: signal() anomaly Kenneth Brody <kenbrody@spamcop.net> - 2012-08-01 16:16 -0400
      Re: signal() anomaly Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-08-01 16:33 -0400
      Re: signal() anomaly Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-08-02 00:22 +0100
      Re: signal() anomaly Stephen Sprunk <stephen@sprunk.org> - 2012-08-02 00:55 -0500
        Re: signal() anomaly Ike Naar <ike@sverige.freeshell.org> - 2012-08-02 07:01 +0000
      Re: signal() anomaly Öö Tiib <ootiib@hot.ee> - 2012-09-08 20:53 -0700
  Re: signal() anomaly Nobody <nobody@nowhere.com> - 2012-08-01 18:06 +0100
    Re: signal() anomaly Tim Rentsch <txr@alumni.caltech.edu> - 2012-09-07 13:44 -0700
  Re: signal() anomaly Kleuske <kleuske@nowhere.net> - 2012-08-02 20:52 +0000

csiph-web