diff options
author | Ulrich Drepper <drepper@gmail.com> | 2010-10-11 12:34:53 -0400 |
---|---|---|
committer | Petr Baudis <pasky@suse.cz> | 2010-11-09 02:38:07 +0100 |
commit | 153501dc10cd4e5c9aa5084c1526fff7448b8854 (patch) | |
tree | ce47fd500ea67705aaeba107380fedd017a929e0 /posix/bug-regex31.c | |
parent | 8a69e300d5529d84bff72b17eeaaf9140e44052d (diff) | |
download | glibc-153501dc10cd4e5c9aa5084c1526fff7448b8854.tar.gz glibc-153501dc10cd4e5c9aa5084c1526fff7448b8854.tar.xz glibc-153501dc10cd4e5c9aa5084c1526fff7448b8854.zip |
More regex memory leak fixes and testcases
(cherry picked from commit ef06edbee6463061a7f3dcbd2f56a625b41a4810) (cherry picked from commit e9b9cbf5e9bdcda6f0b50456658bac748202dd70)
Diffstat (limited to 'posix/bug-regex31.c')
-rw-r--r-- | posix/bug-regex31.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/posix/bug-regex31.c b/posix/bug-regex31.c new file mode 100644 index 0000000000..974e8603b9 --- /dev/null +++ b/posix/bug-regex31.c @@ -0,0 +1,36 @@ +#include <mcheck.h> +#include <regex.h> +#include <stdio.h> +#include <sys/types.h> + +int +main (void) +{ + mtrace (); + + 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; +} |