git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 2/3] grep: use pcre_tables also for PCRE2

From
Carlo Marcelo Arenas Belón <carenas@gmail.com>
Date
Jul 27, 2019, 20:27 UTC
Message-ID
<20190727202759.22310-3-carenas@gmail.com>
In-Reply-To
<20190727202759.22310-1-carenas@gmail.com>

94da9193a6 ("grep: add support for PCRE v2", 2017-06-01) added a local variable to keep track of the chartables (used when locale is not UTF-8 but non-ASCII characters are needed)

Remove that local variable in favor of the shared one within the grep structure and that can be shared by all functions.

Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
---
 grep.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/grep.c b/grep.c
index cc65f7a987..d04635fad4 100644
--- a/grep.c
+++ b/grep.c
@@ -488,7 +488,6 @@ static void compile_pcre2_pattern(struct grep_pat *p, const struct grep_opt *opt
 	PCRE2_UCHAR errbuf[256];
 	PCRE2_SIZE erroffset;
 	int options = PCRE2_MULTILINE;
-	const uint8_t *character_tables = NULL;
 	int jitret;
 	int patinforet;
 	size_t jitsizearg;
@@ -499,9 +498,9 @@ static void compile_pcre2_pattern(struct grep_pat *p, const struct grep_opt *opt
 
 	if (opt->ignore_case) {
 		if (has_non_ascii(p->pattern)) {
-			character_tables = pcre2_maketables(NULL);
+			p->pcre_tables = pcre2_maketables(NULL);
 			p->pcre2_compile_context = pcre2_compile_context_create(NULL);
-			pcre2_set_character_tables(p->pcre2_compile_context, character_tables);
+			pcre2_set_character_tables(p->pcre2_compile_context, p->pcre_tables);
 		}
 		options |= PCRE2_CASELESS;
 	}
-- 
2.22.0
Previous: Carlo ArenasNext: Carlo Marcelo Arenas Belón
Message 5 of 15 in “grep: memory leak in PCRE2”
  1. 0/3 grep: memory leak in PCRE2Carlo Marcelo Arenas Belón, Jul 27, 2019
  2. 1/3 grep: make pcre1_tables version agnosticCarlo Marcelo Arenas Belón, Jul 27, 2019
  3. Ævar Arnfjörð BjarmasonJul 27, 2019
  4. Carlo ArenasJul 28, 2019
  5. 2/3 grep: use pcre_tables also for PCRE2Carlo Marcelo Arenas Belón, Jul 27, 2019
  6. 3/3 grep: plug leak of pcre chartables in PCRE2Carlo Marcelo Arenas Belón, Jul 27, 2019
  7. Ævar Arnfjörð BjarmasonJul 27, 2019
  8. Carlo ArenasJul 28, 2019
  9. René ScharfeJul 29, 2019
  10. Carlo ArenasJul 30, 2019
  11. René ScharfeJul 30, 2019
  12. grep: avoid leak of chartables in PCRE2Carlo Marcelo Arenas Belón, Aug 1, 2019
  13. Junio C HamanoAug 2, 2019
  14. Carlo ArenasAug 3, 2019
  15. Junio C HamanoAug 5, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.