summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libutil/regexp.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/libutil/regexp.c b/src/libutil/regexp.c
index 57515703e..06555f57f 100644
--- a/src/libutil/regexp.c
+++ b/src/libutil/regexp.c
@@ -327,7 +327,7 @@ rspamd_regexp_search (rspamd_regexp_t *re, const gchar *text, gsize len,
*start = mt + ovec[0];
}
if (end) {
- *end = mt + ovec[1];
+ *end = mt + ovec[0] + ovec[1];
}
return TRUE;
@@ -340,9 +340,17 @@ gboolean
rspamd_regexp_match (rspamd_regexp_t *re, const gchar *text, gsize len,
gboolean raw)
{
+ const gchar *start = NULL, *end = NULL;
+
g_assert (re != NULL);
g_assert (text != NULL);
+ if (rspamd_regexp_search (re, text, len, &start, &end, raw)) {
+ if (start == text && end == text + len) {
+ return TRUE;
+ }
+ }
+
return FALSE;
}