diff --git a/include/common/regex.h b/include/common/regex.h index a3d1b5f40..9789ec3c9 100644 --- a/include/common/regex.h +++ b/include/common/regex.h @@ -47,7 +47,6 @@ struct my_regex { #else /* no PCRE */ regex_t regex; #endif - char *regstr; /* this contain the original string */ }; /* what to do when a header matches a regex */ @@ -109,8 +108,6 @@ static inline void regex_free(struct my_regex *preg) { #else regfree(&preg->regex); #endif - free(preg->regstr); - preg->regstr = NULL; } #endif /* _COMMON_REGEX_H */ diff --git a/src/pattern.c b/src/pattern.c index 43d6e968e..94b338c3b 100644 --- a/src/pattern.c +++ b/src/pattern.c @@ -231,8 +231,7 @@ int pat_parse_reg(const char *text, struct pattern *pattern, char **err) return 0; } - pattern->ptr.reg = (struct my_regex *)trash->str; - pattern->ptr.reg->regstr = (char *)text; + pattern->ptr.str = (char *)text; return 1; } @@ -1037,7 +1036,7 @@ int pat_idx_list_reg(struct pattern_expr *expr, struct pattern *pat, char **err) } /* compile regex */ - if (!regex_comp(pat->ptr.reg->regstr, patl->pat.ptr.reg, !(patl->pat.flags & PAT_F_IGNORE_CASE), 0, err)) { + if (!regex_comp(pat->ptr.str, patl->pat.ptr.reg, !(patl->pat.flags & PAT_F_IGNORE_CASE), 0, err)) { free(patl); free(patl->pat.ptr.reg); return 0; diff --git a/src/regex.c b/src/regex.c index 64f93c30e..7a7694050 100644 --- a/src/regex.c +++ b/src/regex.c @@ -124,13 +124,6 @@ const char *chain_regex(struct hdr_exp **head, const regex_t *preg, int regex_comp(const char *str, struct my_regex *regex, int cs, int cap, char **err) { - /* copy the original regex format */ - regex->regstr = strdup(str); - if (!regex->regstr) { - memprintf(err, "out of memory"); - return 0; - } - #ifdef USE_PCRE_JIT int flags = 0; const char *error; @@ -143,14 +136,12 @@ int regex_comp(const char *str, struct my_regex *regex, int cs, int cap, char ** regex->reg = pcre_compile(str, flags, &error, &erroffset, NULL); if (!regex->reg) { - free(regex->regstr); memprintf(err, "regex '%s' is invalid (error=%s, erroffset=%d)", str, error, erroffset); return 0; } regex->extra = pcre_study(regex->reg, PCRE_STUDY_JIT_COMPILE, &error); if (!regex->extra) { - free(regex->regstr); pcre_free(regex->reg); memprintf(err, "failed to compile regex '%s' (error=%s)", str, error); return 0; @@ -164,7 +155,6 @@ int regex_comp(const char *str, struct my_regex *regex, int cs, int cap, char ** flags |= REG_NOSUB; if (regcomp(®ex->regex, str, flags) != 0) { - free(regex->regstr); memprintf(err, "regex '%s' is invalid", str); return 0; }