aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2010-01-22 10:39:59 -0800
committerUlrich Drepper <drepper@redhat.com>2010-01-22 10:39:59 -0800
commitd044d844dd011bb26317ac36da2d22ebe19621b1 (patch)
treef5c0c2f5d3d5dd5a1c4f9d8cf89240419481b592
parent5ddf954cf19d43f54ba44f487427d210952e1236 (diff)
downloadglibc-d044d844dd011bb26317ac36da2d22ebe19621b1.zip
glibc-d044d844dd011bb26317ac36da2d22ebe19621b1.tar.gz
glibc-d044d844dd011bb26317ac36da2d22ebe19621b1.tar.bz2
regexec.c: simplify re_search_2_stub
-rw-r--r--ChangeLog6
-rw-r--r--posix/regexec.c11
2 files changed, 10 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 14e3199..c4fb74f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-01-22 Jim Meyering <jim@meyering.net>
+
+ [BZ #11187]
+ * posix/regexec.c (re_search_2_stub): Use simpler method than
+ boolean for freeing internal storage.
+
2010-01-22 Ulrich Drepper <drepper@redhat.com>
* posix/regex_internal.c (re_string_skip_chars): Simplify test for
diff --git a/posix/regexec.c b/posix/regexec.c
index b8db740..c7d0b37 100644
--- a/posix/regexec.c
+++ b/posix/regexec.c
@@ -368,7 +368,7 @@ re_search_2_stub (bufp, string1, length1, string2, length2, start, range, regs,
const char *str;
int rval;
int len = length1 + length2;
- int free_str = 0;
+ char *s = NULL;
if (BE (length1 < 0 || length2 < 0 || stop < 0, 0))
return -2;
@@ -377,7 +377,7 @@ re_search_2_stub (bufp, string1, length1, string2, length2, start, range, regs,
if (length2 > 0)
if (length1 > 0)
{
- char *s = re_malloc (char, len);
+ s = re_malloc (char, len);
if (BE (s == NULL, 0))
return -2;
@@ -388,17 +388,14 @@ re_search_2_stub (bufp, string1, length1, string2, length2, start, range, regs,
memcpy (s + length1, string2, length2);
#endif
str = s;
- free_str = 1;
}
else
str = string2;
else
str = string1;
- rval = re_search_stub (bufp, str, len, start, range, stop, regs,
- ret_len);
- if (free_str)
- re_free ((char *) str);
+ rval = re_search_stub (bufp, str, len, start, range, stop, regs, ret_len);
+ re_free (s);
return rval;
}