Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Update.
	* posix/regcomp.c (parse_bracket_exp): If build_charclass fails,
	set *err to the returned error, not to REG_ESPACE unconditionally.
	(build_word_op): Likewise.
	* posix/Makefile (tests): Add bug-regex16.
	* posix/bug-regex16.c: New test.

2003-01-16  Jakub Jelinek  <jakub@redhat.com>
  • Loading branch information
Ulrich Drepper committed Jan 16, 2003
1 parent 850dcfc commit 7b7b9e7
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 7 deletions.
8 changes: 8 additions & 0 deletions ChangeLog
@@ -1,3 +1,11 @@
2003-01-16 Jakub Jelinek <jakub@redhat.com>

* posix/regcomp.c (parse_bracket_exp): If build_charclass fails,
set *err to the returned error, not to REG_ESPACE unconditionally.
(build_word_op): Likewise.
* posix/Makefile (tests): Add bug-regex16.
* posix/bug-regex16.c: New test.

2003-01-16 Jakub Jelinek <jakub@redhat.com>

* elf/dl-load.c (_dl_map_object_from_fd): Use
Expand Down
8 changes: 8 additions & 0 deletions linuxthreads/ChangeLog
@@ -1,3 +1,11 @@
2003-01-15 Jakub Jelinek <jakub@redhat.com>

* sysdeps/ia64/tls.h (tcbhead_t): Use the TLS ABI required layout
if USE_TLS only.
(NONTLS_INIT_TP): Revert last change.
* sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define to
offsetof (tcbhead_t, multiple_threads) if USE_TLS not defined.

2003-01-16 Jakub Jelinek <jakub@redhat.com>

* pthread.c (_pthread_initialize_minimal): Use
Expand Down
2 changes: 1 addition & 1 deletion posix/Makefile
Expand Up @@ -75,7 +75,7 @@ tests := tstgetopt testfnm runtests runptests \
tst-chmod bug-regex1 bug-regex2 bug-regex3 bug-regex4 \
tst-gnuglob tst-regex bug-regex5 bug-regex6 bug-regex7 \
bug-regex8 bug-regex9 bug-regex10 bug-regex11 bug-regex12 \
bug-regex13 bug-regex14 bug-regex15
bug-regex13 bug-regex14 bug-regex15 bug-regex16
ifeq (yes,$(build-shared))
test-srcs := globtest
tests += wordexp-test tst-exec tst-spawn
Expand Down
35 changes: 35 additions & 0 deletions posix/bug-regex16.c
@@ -0,0 +1,35 @@
/* Test re_compile_pattern error messages. */

#include <stdio.h>
#include <string.h>
#include <regex.h>

int
main (void)
{
struct re_pattern_buffer re;
const char *s;
int ret = 0;

re_set_syntax (RE_SYNTAX_POSIX_EGREP);
memset (&re, 0, sizeof (re));
s = re_compile_pattern ("[[.invalid_collating_symbol.]]", 30, &re);
if (s == NULL || strcmp (s, "Invalid collation character"))
{
printf ("re_compile_pattern returned %s\n", s);
ret = 1;
}
s = re_compile_pattern ("[[=invalid_equivalence_class=]]", 31, &re);
if (s == NULL || strcmp (s, "Invalid collation character"))
{
printf ("re_compile_pattern returned %s\n", s);
ret = 1;
}
s = re_compile_pattern ("[[:invalid_character_class:]]", 29, &re);
if (s == NULL || strcmp (s, "Invalid character class name"))
{
printf ("re_compile_pattern returned %s\n", s);
ret = 1;
}
return ret;
}
12 changes: 6 additions & 6 deletions posix/regcomp.c
Expand Up @@ -2993,13 +2993,13 @@ parse_bracket_exp (regexp, dfa, token, syntax, err)
goto parse_bracket_exp_free_return;
break;
case CHAR_CLASS:
ret = build_charclass (sbcset,
*err = build_charclass (sbcset,
#ifdef RE_ENABLE_I18N
mbcset, &char_class_alloc,
mbcset, &char_class_alloc,
#endif /* RE_ENABLE_I18N */
start_elem.opr.name, syntax);
if (BE (ret != REG_NOERROR, 0))
goto parse_bracket_exp_espace;
start_elem.opr.name, syntax);
if (BE (*err != REG_NOERROR, 0))
goto parse_bracket_exp_free_return;
break;
default:
assert (0);
Expand Down Expand Up @@ -3380,7 +3380,7 @@ build_word_op (dfa, not, err)
#ifdef RE_ENABLE_I18N
free_charset (mbcset);
#endif /* RE_ENABLE_I18N */
*err = REG_ESPACE;
*err = ret;
return NULL;
}
/* \w match '_' also. */
Expand Down

0 comments on commit 7b7b9e7

Please sign in to comment.