[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#361039: libc6: bad regcomp initialization, fixed upstream



Package: libc6
Severity: serious
Version: 2.3.6-4


After initializing a mutex, regcomp zeros the structure.  On
architectures that have non-zero free lock values (e.g., hppa) this
results in deadlock.

The following patch fixes the problem.
(See http://www.sourceware.org/cgi-bin/cvsweb.cgi/libc/posix/regcomp.c.diff?r1=1.95&r2=1.96&cvsroot=glibc )

===================================================================
RCS file: /cvs/glibc/libc/posix/regcomp.c,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -r1.95 -r1.96
--- libc/posix/regcomp.c	2005/05/06 23:33:52	1.95
+++ libc/posix/regcomp.c	2005/07/10 22:01:14	1.96
@@ -774,8 +774,6 @@
     }
   preg->used = sizeof (re_dfa_t);
 
-  __libc_lock_init (dfa->lock);
-
   err = init_dfa (dfa, length);
   if (BE (err != REG_NOERROR, 0))
     {
@@ -789,6 +787,8 @@
   strncpy (dfa->re_str, pattern, length + 1);
 #endif
 
+  __libc_lock_init (dfa->lock);
+
   err = re_string_construct (&regexp, pattern, length, preg->translate,
 			     syntax & RE_ICASE, dfa);
   if (BE (err != REG_NOERROR, 0))
===================================================================



Reply to: