From: Bruno Haible Date: Tue, 20 Feb 2024 11:06:37 +0000 (+0100) Subject: *printf-posix: Avoid crash in a configure test. X-Git-Tag: v1.0~402 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=7f045c78e36075b266b437de765b66db27e61129;p=gnulib.git *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. --- 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. */