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

Bug#175529: re_compile_pattern bug



Thanks for your report :)

At a glance, I think applying Al and Jakub's fix are fine, 
but it needs tests, I start to check it. 

Regards,
-- gotom

At Tue, 21 Jan 2003 08:01:35 +0100,
Jim Meyering wrote:
> 
> Thanks for looking into that and for the fix!
> Tim Waugh suggested the same thing a few days ago:
> 
> Index: m4/regex.m4
> ===================================================================
> RCS file: /fetish/cu/m4/regex.m4,v
> retrieving revision 1.26
> retrieving revision 1.27
> diff -u -p -u -r1.26 -r1.27
> --- m4/regex.m4	12 Aug 2001 13:26:00 -0000	1.26
> +++ m4/regex.m4	16 Jan 2003 17:33:52 -0000	1.27
> @@ -1,4 +1,4 @@
> -#serial 12
> +#serial 13
>  
>  dnl Initially derived from code in GNU grep.
>  dnl Mostly written by Jim Meyering.
> @@ -22,6 +22,7 @@ AC_DEFUN([jm_INCLUDED_REGEX],
>  		   jm_cv_func_working_re_compile_pattern,
>        AC_TRY_RUN(
>  [#include <stdio.h>
> +#include <string.h>
>  #include <regex.h>
>  	  int
>  	  main ()
> @@ -30,12 +31,14 @@ AC_DEFUN([jm_INCLUDED_REGEX],
>  	    const char *s;
>  	    struct re_registers regs;
>  	    re_set_syntax (RE_SYNTAX_POSIX_EGREP);
> +	    memset (&regex, 0, sizeof (regex));
>  	    [s = re_compile_pattern ("a[[:@:>@:]]b\n", 9, &regex);]
>  	    /* This should fail with _Invalid character class name_ error.  */
>  	    if (!s)
>  	      exit (1);
>  
>  	    /* This should succeed, but doesn't for e.g. glibc-2.1.3.  */
> +	    memset (&regex, 0, sizeof (regex));
>  	    s = re_compile_pattern ("{1", 2, &regex);
>  
>  	    if (s)
> @@ -43,6 +46,7 @@ AC_DEFUN([jm_INCLUDED_REGEX],
>  
>  	    /* The following example is derived from a problem report
>                 against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>.  */
> +	    memset (&regex, 0, sizeof (regex));
>  	    s = re_compile_pattern ("[[anù]]*n", 7, &regex);
>  	    if (s)
>  	      exit (1);
> 
> FYI, GNU libc's regex code has just been changed so that it leaves
> the affected members in a sane state, so the above initializations
> would no longer be necessary.
> 
> 2003-01-16  Jakub Jelinek  <jakub@redhat.com>
> 
>         * posix/regcomp.c (re_compile_internal): If clearing buffer, clear
>         allocated too.  Reported by Al Viro <aviro@redhat.com>.
> 
> 
> --
> To UNSUBSCRIBE, email to debian-glibc-request@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> 



Reply to: