Mercurial > hg > octave-lojdl > gnulib-hg
view modules/regex @ 17419:020c917cba9d
regex: fix dfa race in multithreaded uses
Problem reported by Ludovic Courtès in
<http://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00058.html>.
* lib/regex_internal.h (lock_define, lock_init, lock_fini):
New macros. All uses of __libc_lock_define, __libc_lock_init
changed to use the first two of these.
(__libc_lock_lock, __libc_lock_unlock): New macros, for
non-glibc platforms.
(struct re_dfa_t): Define the lock unconditionally.
* lib/regexec.c (regexec, re_search_stub): Remove some now-incorrect
'#ifdef _LIBC"s.
* modules/regex (Depends-on): Add pthread, if we use the
included regex.
* lib/regcomp.c: Do actions that are not needed for glibc,
but may be needed elsewhere.
(regfree, re_compile_internal): Destroy the lock.
(re_compile_internal): Check for lock-initialization failure.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Sun, 19 May 2013 14:26:05 -0700 |
parents | 45ae6ce33a1f |
children | 08883714ab3e |
line wrap: on
line source
Description: Regular expression matching. Files: lib/regex.h lib/regex.c lib/regex_internal.c lib/regex_internal.h lib/regexec.c lib/regcomp.c m4/eealloc.m4 m4/regex.m4 m4/mbstate_t.m4 Depends-on: extensions ssize_t alloca-opt [test $ac_use_included_regex = yes] btowc [test $ac_use_included_regex = yes] gettext-h [test $ac_use_included_regex = yes] malloc-gnu [test $ac_use_included_regex = yes] memcmp [test $ac_use_included_regex = yes] memmove [test $ac_use_included_regex = yes] mbrtowc [test $ac_use_included_regex = yes] mbsinit [test $ac_use_included_regex = yes] nl_langinfo [test $ac_use_included_regex = yes] pthread [test $ac_use_included_regex = yes] stdbool [test $ac_use_included_regex = yes] stdint [test $ac_use_included_regex = yes] wchar [test $ac_use_included_regex = yes] wcrtomb [test $ac_use_included_regex = yes] wctype-h [test $ac_use_included_regex = yes] wctype [test $ac_use_included_regex = yes] configure.ac: gl_REGEX if test $ac_use_included_regex = yes; then AC_LIBOBJ([regex]) gl_PREREQ_REGEX fi Makefile.am: Include: <regex.h> Link: $(LTLIBINTL) when linking with libtool, $(LIBINTL) otherwise License: LGPLv2+ Maintainer: all