regexec.c: simplify re_search_2_stub
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 22 Jan 2010 18:39:59 +0000 (10:39 -0800)
committerUlrich Drepper <drepper@redhat.com>
Fri, 22 Jan 2010 18:39:59 +0000 (10:39 -0800)
ChangeLog
posix/regexec.c

index 14e3199..c4fb74f 100644 (file)
--- 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
index b8db740..c7d0b37 100644 (file)
@@ -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;
 }