summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--posix/Makefile1
-rw-r--r--posix/bug-regex29.c15
3 files changed, 18 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 876e0e8c39..e1743e9b58 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,8 @@
* posix/regcomp.c (parse_dup_op): Verify the expression is correctly
terminated.
+ * posix/Makefile (tests): Add bug-regex29.
+ * posix/bug-regex29.c: New file.
* posix/unistd.h: Define _POSIX_VERSION and _POSIX2_* correctly if
older POSIX versions are selected.
diff --git a/posix/Makefile b/posix/Makefile
index d9a1ac768f..5eb8ae2279 100644
--- a/posix/Makefile
+++ b/posix/Makefile
@@ -82,6 +82,7 @@ tests := tstgetopt testfnm runtests runptests \
bug-regex17 bug-regex18 bug-regex19 bug-regex20 \
bug-regex21 bug-regex22 bug-regex23 bug-regex24 \
bug-regex25 bug-regex26 bug-regex27 bug-regex28 \
+ bug-regex29 \
tst-nice tst-nanosleep tst-regex2 \
transbug tst-rxspencer tst-pcre tst-boost \
bug-ga1 tst-vfork1 tst-vfork2 tst-vfork3 tst-waitid \
diff --git a/posix/bug-regex29.c b/posix/bug-regex29.c
new file mode 100644
index 0000000000..70a6c94cc6
--- /dev/null
+++ b/posix/bug-regex29.c
@@ -0,0 +1,15 @@
+#include <regex.h>
+
+static int
+do_test (void)
+{
+ regex_t r;
+ int e = regcomp(&r, "xy\\{4,5,7\\}zabc", 0);
+ char buf[100];
+ regerror(e, &r, buf, sizeof (buf));
+ printf ("e = %d (%s)\n", e, buf);
+ return e != REG_BADBR;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"