diff --git a/src/backend/regex/regexec.c b/src/backend/regex/regexec.c index 6135f59f22b..6e2adf5cac0 100644 --- a/src/backend/regex/regexec.c +++ b/src/backend/regex/regexec.c @@ -323,7 +323,11 @@ find(struct vars * v, (chr **) NULL, &hitend); else end = longest(v, d, begin, v->stop, &hitend); - NOERR(); + if (ISERR()) + { + freedfa(d); + return v->err; + } if (hitend && cold == NULL) cold = begin; if (end != NULL)