Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/bsd/tre/dist/lib Apply the previous fix to tre_regw...



details:   https://anonhg.NetBSD.org/src/rev/a79ab64ccfef
branches:  trunk
changeset: 827787:a79ab64ccfef
user:      rin <rin%NetBSD.org@localhost>
date:      Mon Nov 13 00:53:05 2017 +0000

description:
Apply the previous fix to tre_regwexec().

diffstat:

 external/bsd/tre/dist/lib/regexec.c |  11 +++++------
 1 files changed, 5 insertions(+), 6 deletions(-)

diffs (35 lines):

diff -r dd6ff23502ac -r a79ab64ccfef external/bsd/tre/dist/lib/regexec.c
--- a/external/bsd/tre/dist/lib/regexec.c       Sun Nov 12 21:20:20 2017 +0000
+++ b/external/bsd/tre/dist/lib/regexec.c       Mon Nov 13 00:53:05 2017 +0000
@@ -243,26 +243,25 @@
         size_t nmatch, regmatch_t pmatch[], int eflags)
 {
        size_t shift, len, i;
-       int startend, ret;
+       int ret;
        tre_tnfa_t *tnfa = (void *)preg->TRE_REGEX_T_FIELD;
        regmatch_t *p;
 
        if (eflags & REG_STARTEND) {
-               if (pmatch == NULL || pmatch->rm_so < 0
+               if (pmatch == NULL || pmatch->rm_so < 0 || pmatch->rm_eo < 0
                    || pmatch->rm_so > pmatch->rm_eo)
                        return REG_INVARG;
                str += shift = pmatch->rm_so;
                len = pmatch->rm_eo - pmatch->rm_so;
-               eflags = (unsigned)(eflags & ~REG_STARTEND);
-               startend = 1;
+               eflags &= ~REG_STARTEND;
        } else {
+               shift = 0;
                len = (size_t)-1;
-               startend = 0;
        }
 
        ret = tre_regwnexec(preg, str, len, nmatch, pmatch, eflags);
 
-       if (!ret && !(tnfa->cflags & REG_NOSUB) && startend) {
+       if (!ret && !(tnfa->cflags & REG_NOSUB) && len != (size_t)-1) {
                for (i = nmatch, p = pmatch; i > 0; p++, i--) {
                        if (p->rm_so >= 0) p->rm_so += shift;
                        if (p->rm_eo >= 0) p->rm_eo += shift;



Home | Main Index | Thread Index | Old Index