summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.Merijn Brand <perl5@tux.freedom.nl>2020-09-22 13:17:11 +0200
committerSteve Hay <steve.m.hay@googlemail.com>2020-12-26 15:27:04 +0000
commitd828ea66796700f472229e6b25f29348ab425cdb (patch)
treeb46992362e1fcf8840be8dd224feab16ea2ae541
parent674eb0a640083b907f47b17387d6f762ad08e865 (diff)
downloadperl-d828ea66796700f472229e6b25f29348ab425cdb.tar.gz
Trap SIGBUS when Configure checks for va_copy (#18148)
On several systems the attempt to determine if we &quot;need va_copy() or similar&quot; 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-xConfigure3
1 files changed, 3 insertions, 0 deletions
diff --git a/Configure b/Configure
index cef8c3c078..fbc225822a 100755
--- a/Configure
+++ b/Configure
@@ -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);