From: Zack Weinberg Date: Mon, 7 Dec 2020 16:32:55 +0000 (-0500) Subject: autom4te: don’t crash when warnings have no stacktrace X-Git-Tag: v2.70~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b4ec547b86e6dd878d312cc79dddabce825a4492;p=thirdparty%2Fautoconf.git autom4te: don’t crash when warnings have no stacktrace In testing on Darwin (OSX), sometimes warnings reported from M4 code reach autom4te with no stack trace at all, causing the perl script to crash with a “use of uninitialized value” error. The root cause of the problem is not clear to me, but the script certainly shouldn’t crash. Problem found by Jannick . * bin/autom4te.in: When processing warnings, make sure $stacktrace is defined. --- diff --git a/bin/autom4te.in b/bin/autom4te.in index e54fa145a..febcdeea8 100644 --- a/bin/autom4te.in +++ b/bin/autom4te.in @@ -1068,6 +1068,8 @@ for (split (/\n*$separator\n*/o, contents ("$tmp/warnings"))) # In particular, m4_warn guarantees that either $stackdump is empty, or # it consists of lines where only the last line ends in "top level". my ($cat, $loc, $msg, $stacktrace) = split ('::', $_, 4); + # There might not have been a stacktrace. + $stacktrace = '' unless defined $stacktrace; msg $cat, $loc, $msg, partial => ($stacktrace =~ /top level$/) + 0; for (split /\n/, $stacktrace)