summaryrefslogtreecommitdiffstats
path: root/main/musl/0009-fix-crash-in-regexec-for-nonzero-nmatch-argument-wit.patch
blob: ffef918c0ca352880fb4899999782d72aa463469 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
From 72ed3d47e567b1635a35d3c1d174c8a8b2787e30 Mon Sep 17 00:00:00 2001
From: Rich Felker <dalias@aerifal.cx>
Date: Thu, 17 Jul 2014 19:56:27 -0400
Subject: [PATCH] fix crash in regexec for nonzero nmatch argument with
 REG_NOSUB

per POSIX, the nmatch and pmatch arguments are ignored when the regex
was compiled with REG_NOSUB.
---
 src/regex/regexec.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/regex/regexec.c b/src/regex/regexec.c
index 855cef5..2e35b83 100644
--- a/src/regex/regexec.c
+++ b/src/regex/regexec.c
@@ -983,6 +983,7 @@ regexec(const regex_t *restrict preg, const char *restrict string,
   tre_tnfa_t *tnfa = (void *)preg->TRE_REGEX_T_FIELD;
   reg_errcode_t status;
   int *tags = NULL, eo;
+  if (tnfa->cflags & REG_NOSUB) nmatch = 0;
   if (tnfa->num_tags > 0 && nmatch > 0)
     {
       tags = xmalloc(sizeof(*tags) * tnfa->num_tags);
-- 
2.0.2