Bug 874

Summary: regcomp regression
Product: glibc Reporter: Jan de Groot <jan>
Component: regexAssignee: GOTO Masanori <gotom>
Status: RESOLVED WORKSFORME    
Severity: critical CC: glibc-bugs-regex, glibc-bugs
Priority: P2    
Version: unspecified   
Target Milestone: ---   
Host: i686-pc-linux-gnu Target: i686-pc-linux-gnu
Build: i686-pc-linux-gnu Last reconfirmed:

Description Jan de Groot 2005-04-26 09:49:02 UTC
The regcomp function in current CVS and Fedora rawhide no longer accepts
dual-bracket regular expressions.

This piece of code works on GNU libc <= 2.3.5, FreeBSD and OpenBSD without
problems, but with the additional regcomp change that has been done to CVS this
piece of code returns 7, which means a problem with brackets (missing ] while
opened with [ for example). This issue also affects tools like grep.

#include <sys/types.h>
#include <regex.h>
#include <stdlib.h>
#include <stdio.h>

int
main (int argc, char **argv)
{
  int err;
  regex_t r;
  err = regcomp (&r, "[[:space:]]", REG_EXTENDED);
  if (err != 0) {
    printf("%d\n", err);
  }
  return 0;
}
Comment 1 Jakub Jelinek 2005-04-26 10:31:32 UTC
Does that testcase really file for you?
I can't reproduce this on Fedora glibc-2.3.5-1 on i686 nor with CVS glibc
on x86-64.  regcomp in all cases returns 0.
Comment 2 Jan de Groot 2005-04-26 10:46:31 UTC
I get this behaviour with glibc-20050415T0909 as found in Fedora rawhide CVS.
Currently recompiling with other options to make sure it isn't a compile f*ckup
instead of a real bug.
Comment 3 Jan de Groot 2005-04-26 13:15:32 UTC
Seems this bug is caused by specific options in ./configure our glibc package
maintainer didn't check.

I changed the build parameters for ./configure to use exactly the same lines as
the specfile in fedora CVS says and now it works fine.