diff options
author | H.Merijn Brand <perl5@tux.freedom.nl> | 2020-09-22 13:17:11 +0200 |
---|---|---|
committer | Steve Hay <steve.m.hay@googlemail.com> | 2020-12-26 15:27:04 +0000 |
commit | d828ea66796700f472229e6b25f29348ab425cdb (patch) | |
tree | b46992362e1fcf8840be8dd224feab16ea2ae541 | |
parent | 674eb0a640083b907f47b17387d6f762ad08e865 (diff) | |
download | perl-d828ea66796700f472229e6b25f29348ab425cdb.tar.gz |
Trap SIGBUS when Configure checks for va_copy (#18148)
On several systems the attempt to determine if we "need va_copy() or
similar" results in a SIGBUS instead of a SIGSEGV because the fault
happens pointing at an io device address.
While reviewing accounting logs during the OpenBSD system build, bluhm@
noticed a core dump and deraadt@ tracked it down.
While researching it was discovered that this is a fairly common case in
other systems as well.
Original diff by deraadt@
(cherry picked from commit bec07c3af574f0f22a318c6273a2c4f29afc1251)
-rwxr-xr-x | Configure | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -21477,6 +21477,9 @@ int main(int ac, char **av) { signal(SIGSEGV, exit); +#ifdef SIGBUS + signal(SIGBUS, exit); +#endif myprintf("%s%cs all right, then\n", "that", '\''); exit(0); |