about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--posix/regcomp.c2
2 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 20d61ee5aa..dc3a4457a9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2018-08-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+	regex: fix memory leak in Gnulib
+	Problem and fix reported by Assaf Gordon in:
+	https://lists.gnu.org/r/bug-gnulib/2018-07/txtqLKNwBdefE.txt
+	* posix/regcomp.c (free_charset) [!_LIBC]: Free range_starts and
+	range_ends members too, as they are defined in 'struct
+	re_charset_t' even if not _LIBC.  This affects only Gnulib.
+
 2018-08-01  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/x86/cpu-features.c (get_common_indeces): Renamed to
diff --git a/posix/regcomp.c b/posix/regcomp.c
index 545d188468..3b0a3c6b6a 100644
--- a/posix/regcomp.c
+++ b/posix/regcomp.c
@@ -3794,9 +3794,9 @@ free_charset (re_charset_t *cset)
 # ifdef _LIBC
   re_free (cset->coll_syms);
   re_free (cset->equiv_classes);
+# endif
   re_free (cset->range_starts);
   re_free (cset->range_ends);
-# endif
   re_free (cset->char_classes);
   re_free (cset);
 }