[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: *printf-posix: Avoid crash in a configure test
From: |
Bruno Haible |
Subject: |
Re: *printf-posix: Avoid crash in a configure test |
Date: |
Wed, 21 Feb 2024 12:51:47 +0100 |
> 2024-02-20 Bruno Haible <bruno@clisp.org>
>
> *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.
There's another configure test that also exercises %n.
2024-02-21 Bruno Haible <bruno@clisp.org>
*printf-posix: Avoid crash in another configure test.
* m4/printf.m4 (gl_SNPRINTF_DIRECTIVE_N): In the test program, catch the
SIGABRT signal, so that the program does not dump core.
diff --git a/m4/printf.m4 b/m4/printf.m4
index 05bf7fe1df..6f917778e8 100644
--- a/m4/printf.m4
+++ b/m4/printf.m4
@@ -1705,6 +1705,7 @@ AC_DEFUN([gl_SNPRINTF_DIRECTIVE_N]
[
AC_RUN_IFELSE(
[AC_LANG_SOURCE([[
+#include <signal.h>
#include <stdio.h>
#include <string.h>
#if HAVE_SNPRINTF
@@ -1721,11 +1722,18 @@ AC_DEFUN([gl_SNPRINTF_DIRECTIVE_N]
return ret;
}
#endif
+static void
+abort_handler (int sig)
+{
+ (void) sig;
+ _exit (1);
+}
static char fmtstring[10];
static char buf[100];
int main ()
{
int count = -1;
+ 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. */