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 (®ex, 0, sizeof (regex));
> [s = re_compile_pattern ("a[[:@:>@:]]b\n", 9, ®ex);]
> /* 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 (®ex, 0, sizeof (regex));
> s = re_compile_pattern ("{1", 2, ®ex);
>
> 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 (®ex, 0, sizeof (regex));
> s = re_compile_pattern ("[[anù]]*n", 7, ®ex);
> 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: