From e9b9cbf5e9bdcda6f0b50456658bac748202dd70 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 11 Oct 2010 22:46:44 -0400 Subject: More regex memory leak fixes and tests. --- posix/bug-regex31.c | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) (limited to 'posix/bug-regex31.c') diff --git a/posix/bug-regex31.c b/posix/bug-regex31.c index 2d5d669..974e860 100644 --- a/posix/bug-regex31.c +++ b/posix/bug-regex31.c @@ -3,14 +3,34 @@ #include #include -int main() +int +main (void) { - regex_t regex; - int rc; - mtrace (); - if ((rc = regcomp (®ex, "([0]", REG_EXTENDED))) - printf ("Error %d (expected)\n", rc); - return 0; + int res = 0; + char *buf = NULL; + size_t len = 0; + while (! feof (stdin)) + { + ssize_t n = getline (&buf, &len, stdin); + if (n <= 0) + break; + if (buf[n - 1] == '\n') + buf[n - 1] = '\0'; + + regex_t regex; + int rc = regcomp (®ex, buf, REG_EXTENDED); + if (rc != 0) + printf ("%s: Error %d (expected)\n", buf, rc); + else + { + printf ("%s: succeeded !\n", buf); + res = 1; + } + } + + free (buf); + + return 0; } -- cgit v1.1