Mercurial > gnulib
view modules/argz @ 37246:5cfb3a67238d
regex: avoid glibc deadlock during configure
glibc has a known bug where certain corruptions of the heap can
cause malloc to default to printing a debug message that includes
a backtrace, but the act of getting the backtrace uses dlopen
which in turn calls into malloc, causing a recursive lock ending
in deadlock. Thus, when configure is probing for a known glibc
heap corruption bug, the overall configure would hang.
The solution suggested by glibc developers is to force malloc
to quit printing debug messages, which avoids recursive malloc.
* m4/regex.m4 (gl_REGEX): Avoid recursive malloc deadlock when
glibc bug 15078 in turn triggers bug 16159.
Reported by Michal Privoznik.
Signed-off-by: Eric Blake <eblake@redhat.com>
author | Eric Blake <eblake@redhat.com> |
---|---|
date | Tue, 03 Dec 2013 10:34:13 -0700 |
parents | be92ce7ad147 |
children |
line wrap: on
line source
Description: Argv style string arrays in a single null delimited char*. Files: lib/argz.in.h lib/argz.c m4/argz.m4 Depends-on: memmove [test -n "$ARGZ_H"] mempcpy [test -n "$ARGZ_H"] stpcpy [test -n "$ARGZ_H"] strndup [test -n "$ARGZ_H"] strnlen [test -n "$ARGZ_H"] strstr [test -n "$ARGZ_H"] configure.ac: gl_FUNC_ARGZ if test -n "$ARGZ_H"; then AC_LIBOBJ([argz]) fi Makefile.am: BUILT_SOURCES += $(ARGZ_H) # We need the following in order to create <argz.h> when the system # doesn't have one that works with the given compiler. if GL_GENERATE_ARGZ_H argz.h: argz.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/argz.in.h; \ } > $@-t && \ mv -f $@-t $@ else argz.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += argz.h argz.h-t Include: <argz.h> License: LGPLv2+ Maintainer: all