[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.

Roland McGrath roland@frob.com
Fri Jan 14 13:35:00 GMT 2000


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.



More information about the Libc-alpha mailing list