This is the mail archive of the
libc-alpha@sourceware.cygnus.com
mailing list for the glibc project.
Re: [sbachman@saveware.com] libc/1534: When a program execl()'s in a signal function, the new program no longer responds to any signals set by the user.
- To: Andreas Jaeger <aj at suse dot de>
- Subject: Re: [sbachman@saveware.com] libc/1534: When a program execl()'s in a signal function, the new program no longer responds to any signals set by the user.
- From: Roland McGrath <roland at frob dot com>
- Date: Fri, 14 Jan 2000 16:35:42 -0500
- Cc: libc-alpha Mailinglist <libc-alpha at sourceware dot cygnus dot com>, sbachman at saveware dot com
I do not have my copy of 1003.1 handy to check that execl is indeed
supposed to be signal-safe. If it is not signal-safe, then your program is
nonconforming. If it is signal-safe, then your program is behaving as it
should. The set of blocked signals is one of the things that survives
across exec, so the new program image will have SIGINT blocked when execl
was called from inside teh SIGINT handler, for example.
Also, your program fails to initialize sa_mask and therefore has undefined
behavior, the likely actual thing being some random bits causing additional
signals to be blocked in the signal handler.