50 lines
1.7 KiB
Diff
50 lines
1.7 KiB
Diff
From 6535c77b00a444750148d9d658e4d47214bb4562 Mon Sep 17 00:00:00 2001
|
|
From: Aleksei Rybalkin <aleksei@rybalkin.org>
|
|
Date: Mon, 25 Jul 2022 16:48:03 +0200
|
|
Subject: [PATCH] gregex: do not set match and recursion limits on match
|
|
context
|
|
|
|
These are not really necessary, and cause breakages (e.g. #2700).
|
|
pcre2_set_recursion_limit is also deprecated.
|
|
|
|
Fixes: #2700
|
|
|
|
Conflict:NA
|
|
Reference:https://gitlab.gnome.org/GNOME/glib/-/commit/6535c77b00a444750148d9d658e4d47214bb4562
|
|
|
|
---
|
|
glib/gregex.c | 2 --
|
|
glib/tests/regex.c | 3 +++
|
|
2 files changed, 3 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/glib/gregex.c b/glib/gregex.c
|
|
index 6741d2479f..dd61dc4813 100644
|
|
--- a/glib/gregex.c
|
|
+++ b/glib/gregex.c
|
|
@@ -769,8 +769,6 @@ match_info_new (const GRegex *regex,
|
|
&match_info->n_subpatterns);
|
|
|
|
match_info->match_context = pcre2_match_context_create (NULL);
|
|
- pcre2_set_match_limit (match_info->match_context, 65536); /* should be plenty */
|
|
- pcre2_set_recursion_limit (match_info->match_context, 64); /* should be plenty */
|
|
|
|
if (is_dfa)
|
|
{
|
|
diff --git a/glib/tests/regex.c b/glib/tests/regex.c
|
|
index bb1a5ff762..5839465fae 100644
|
|
--- a/glib/tests/regex.c
|
|
+++ b/glib/tests/regex.c
|
|
@@ -2493,6 +2493,9 @@ main (int argc, char *argv[])
|
|
TEST_MATCH("[DŽ]", G_REGEX_CASELESS, 0, "dž", -1, 0, 0, TRUE);
|
|
TEST_MATCH("[DŽ]", G_REGEX_CASELESS, 0, "Dž", -1, 0, 0, TRUE);
|
|
|
|
+ /* see https://gitlab.gnome.org/GNOME/glib/-/issues/2700 */
|
|
+ TEST_MATCH("(\n.+)+", G_REGEX_DEFAULT, 0, "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n", -1, 0, 0, TRUE);
|
|
+
|
|
/* TEST_MATCH_NEXT#(pattern, string, string_len, start_position, ...) */
|
|
TEST_MATCH_NEXT0("a", "x", -1, 0);
|
|
TEST_MATCH_NEXT0("a", "ax", -1, 1);
|
|
--
|
|
GitLab
|
|
|