summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2018-08-01 13:22:16 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2018-08-01 13:22:58 -0700
commitfa67ba06ee07845a2bac34afa609ee2bbb1e017e (patch)
tree56769f8ccbe4ba8d36047aed5f620a16c274c451
parent82c80ac2ebf9acc81ec460adfd951d4884836c7c (diff)
downloadglibc-fa67ba06ee07845a2bac34afa609ee2bbb1e017e.tar.gz
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.
-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);
}