From 7f045c78e36075b266b437de765b66db27e61129 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Tue, 20 Feb 2024 12:06:37 +0100 Subject: [PATCH] *printf-posix: Avoid crash in a configure test. * m4/printf.m4 (gl_PRINTF_DIRECTIVE_N): In the test program, catch the SIGABRT signal, so that the program does not dump core. --- ChangeLog | 6 ++++++ m4/printf.m4 | 10 +++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index b941c7449d..ef069e2e94 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2024-02-20 Bruno Haible + + *printf-posix: Avoid crash in a configure test. + * m4/printf.m4 (gl_PRINTF_DIRECTIVE_N): In the test program, catch the + SIGABRT signal, so that the program does not dump core. + 2024-02-18 Jim Meyering maint.mk: improve new syntax-check rule diff --git a/m4/printf.m4 b/m4/printf.m4 index bb67d59409..05bf7fe1df 100644 --- a/m4/printf.m4 +++ b/m4/printf.m4 @@ -1,4 +1,4 @@ -# printf.m4 serial 89 +# printf.m4 serial 90 dnl Copyright (C) 2003, 2007-2024 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -890,6 +890,7 @@ AC_DEFUN([gl_PRINTF_DIRECTIVE_N], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ +#include #include #include #include @@ -907,6 +908,12 @@ invalid_parameter_handler (const wchar_t *expression, exit (1); } #endif +static void +abort_handler (int sig) +{ + (void) sig; + _exit (1); +} static char fmtstring[10]; static char buf[100]; int main () @@ -915,6 +922,7 @@ int main () #ifdef _MSC_VER _set_invalid_parameter_handler (invalid_parameter_handler); #endif + signal (SIGABRT, abort_handler); /* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE=2) support %n in format strings in read-only memory but not in writable memory. */ -- 2.39.5