[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: musl, printf out-of-memory test
From: |
Bruno Haible |
Subject: |
Re: musl, printf out-of-memory test |
Date: |
Tue, 19 Jun 2012 12:45:50 +0200 |
User-agent: |
KMail/4.7.4 (Linux/3.1.10-1.9-desktop; KDE/4.7.4; x86_64; ; ) |
Rich Felker wrote:
> > Replacements of *printf, because of
> > [...]
> > checking whether printf survives out-of-memory conditions... no
>
> No idea. Copying out the test and running it directly, it passes just
> fine for me. Maybe gnulib has already replaced printf with its own
> malloc-using version by the time it gets to this test??
Strange indeed. With a testdir of all of gnulib, I got
configure:17615: checking whether printf survives out-of-memory conditions
configure:17786: /arch/x86-linux/inst-musl/bin/musl-gcc -std=gnu99 -o
conftest -g -O2 -Wall conftest.c >&5
configure:17789: $? = 0
configure:17837: result: yes
but with a testdir of only the POSIX related modules of gnulib, I got
configure:13657: checking whether printf survives out-of-memory conditions
configure:13828: /arch/x86-linux/inst-musl/bin/musl-gcc -std=gnu99 -o
conftest -g -O2 -Wall conftest.c >&5
configure:13831: $? = 0
configure:13879: result: no
The '$? = 0' line prints only the linker's exit code, not the runtime
exit code. I'm adding a second output line for the runtime exit code.
Then I get:
configure:8919: checking whether printf survives out-of-memory conditions
configure:9090: /arch/x86-linux/inst-musl/bin/musl-gcc -o conftest -g -O2
-Wall conftest.c >&5
configure:9093: $? = 0
configure:9097: $? = 1
configure:9142: result: no
After adding a printf to stderr: Once I get
configure:8919: checking whether printf survives out-of-memory conditions
configure:9093: /arch/x86-linux/inst-musl/bin/musl-gcc -o conftest -g -O2
-Wall conftest.c >&5
configure:9096: $? = 0
printf's return value = 5000002, errno = 0
configure:9100: $? = 0
configure:9145: result: yes
In another configure run I get:
configure:8919: checking whether printf survives out-of-memory conditions
configure:9093: /arch/x86-linux/inst-musl/bin/musl-gcc -o conftest -g -O2
-Wall conftest.c >&5
configure:9096: $? = 0
configure:9100: $? = 1
configure:9145: result: no
So, the exit code 1 must have come from the crash handler. Without this crash
handler: 7x I get
configure:8919: checking whether printf survives out-of-memory conditions
configure:8979: /arch/x86-linux/inst-musl/bin/musl-gcc -o conftest -g -O2
-Wall conftest.c >&5
configure:8982: $? = 0
printf's return value = 5000002, errno = 0
configure:8986: $? = 0
configure:9031: result: yes
but once I get
configure:8979: /arch/x86-linux/inst-musl/bin/musl-gcc -o conftest -g -O2
-Wall conftest.c >&5
configure:8982: $? = 0
configure:8986: $? = 139
configure:9031: result: no
So, apparently, under memory stress, musl's printf has a probability of
between 10% and 50% of crashing with SIGSEGV (139 = 128 + 11).
Bruno
2012-06-19 Bruno Haible <address@hidden>
*printf-posix: Put more info into config.log.
* m4/printf.m4 (gl_PRINTF_ENOMEM): Emit conftest's error output and
exit code into config.log.
--- m4/printf.m4.orig Tue Jun 19 12:41:56 2012
+++ m4/printf.m4 Tue Jun 19 12:41:53 2012
@@ -1,4 +1,4 @@
-# printf.m4 serial 48
+# printf.m4 serial 49
dnl Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -1028,8 +1028,9 @@
changequote([,])dnl
])])
if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
- (./conftest
+ (./conftest 2>&AS_MESSAGE_LOG_FD
result=$?
+ _AS_ECHO_LOG([\$? = $result])
if test $result != 0 && test $result != 77; then result=1; fi
exit $result
) >/dev/null 2>/dev/null
- Re: Why require SLOW_BUT_NO_HACKS for stubs?, (continued)
- Re: Why require SLOW_BUT_NO_HACKS for stubs?, John Spencer, 2012/06/25
- Re: Why require SLOW_BUT_NO_HACKS for stubs?, Philipp Thomas, 2012/06/25
- Re: musl bugs found through gnulib, Bruno Haible, 2012/06/17
- Re: [musl] Re: musl bugs found through gnulib, idunham, 2012/06/17
- Re: [musl] Re: musl bugs found through gnulib, Rich Felker, 2012/06/18
- Re: [musl] Re: musl bugs found through gnulib, Eric Blake, 2012/06/18
- Re: [musl] Re: musl bugs found through gnulib, Rich Felker, 2012/06/18
- Re: musl, fdopen test, Bruno Haible, 2012/06/19
- Re: musl, fdopen test, Jim Meyering, 2012/06/19
- Re: musl, fdopen test, Bruno Haible, 2012/06/20
- Re: musl, printf out-of-memory test,
Bruno Haible <=
- Re: [musl] Re: musl, printf out-of-memory test, Rich Felker, 2012/06/19
- Re: musl, printf out-of-memory test, Bruno Haible, 2012/06/19
- Re: musl, printf out-of-memory test, Rich Felker, 2012/06/19
- Re: musl, printf out-of-memory test, Bruno Haible, 2012/06/19
- Re: musl, printf out-of-memory test, Rich Felker, 2012/06/19
- Re: musl, printf out-of-memory test, Bruno Haible, 2012/06/20
- Re: musl, printf out-of-memory test, Jim Meyering, 2012/06/20
- Re: musl, printf out-of-memory test, Tom Tromey, 2012/06/21
- Re: [musl] Re: musl bugs found through gnulib, Rich Felker, 2012/06/19
- Re: [musl] Re: musl bugs found through gnulib, Eric Blake, 2012/06/20