diff options
author | Rich Felker <dalias@aerifal.cx> | 2014-07-17 19:56:27 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2014-07-28 00:27:59 -0400 |
commit | f6c971b5b191980713621ec6430011f024dbdeac (patch) | |
tree | 358295e921f36afce1f04ecb902a1956169fa7a6 /src/regex/regexec.c | |
parent | 5ee811110444a615bbbf84a3daacccf734e4ef2c (diff) | |
download | musl-f6c971b5b191980713621ec6430011f024dbdeac.tar.gz musl-f6c971b5b191980713621ec6430011f024dbdeac.tar.xz musl-f6c971b5b191980713621ec6430011f024dbdeac.zip |
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. (cherry picked from commit 72ed3d47e567b1635a35d3c1d174c8a8b2787e30)
Diffstat (limited to 'src/regex/regexec.c')
-rw-r--r-- | src/regex/regexec.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/regex/regexec.c b/src/regex/regexec.c index 855cef57..2e35b832 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); |