diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2018-09-13 14:06:40 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2018-09-13 14:06:40 +0100 |
commit | 5d079bd4837987013f34a43eacc5b7f6ae589996 (patch) | |
tree | a2eb2df1bdc9d53505bbe39a9a81eb1f71f86623 /src | |
parent | a270dd6e242772072dcc4f4f59f08d5fe0a74c56 (diff) | |
download | rspamd-5d079bd4837987013f34a43eacc5b7f6ae589996.tar.gz rspamd-5d079bd4837987013f34a43eacc5b7f6ae589996.zip |
[Minor] Another out-of-boundary access fix
Diffstat (limited to 'src')
-rw-r--r-- | src/libserver/spf.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/libserver/spf.c b/src/libserver/spf.c index aa14bc750..372b20189 100644 --- a/src/libserver/spf.c +++ b/src/libserver/spf.c @@ -1973,12 +1973,15 @@ start_spf_parse (struct spf_record *rec, struct spf_resolved_element *resolved, gchar *begin) { gchar **elts, **cur_elt; + gsize len; /* Skip spaces */ while (g_ascii_isspace (*begin)) { begin++; } + len = strlen (begin); + if (g_ascii_strncasecmp (begin, SPF_VER1_STR, sizeof (SPF_VER1_STR) - 1) == 0) { begin += sizeof (SPF_VER1_STR) - 1; @@ -2006,8 +2009,9 @@ start_spf_parse (struct spf_record *rec, struct spf_resolved_element *resolved, "<%s>: spf error for domain %s: bad spf record start: %*s", rec->task->message_id, rec->sender_domain, - (gint)sizeof (SPF_VER1_STR) - 1, + (gint)len, begin); + return FALSE; } |