summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2018-09-13 14:06:40 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2018-09-13 14:06:40 +0100
commit5d079bd4837987013f34a43eacc5b7f6ae589996 (patch)
treea2eb2df1bdc9d53505bbe39a9a81eb1f71f86623 /src
parenta270dd6e242772072dcc4f4f59f08d5fe0a74c56 (diff)
downloadrspamd-5d079bd4837987013f34a43eacc5b7f6ae589996.tar.gz
rspamd-5d079bd4837987013f34a43eacc5b7f6ae589996.zip
[Minor] Another out-of-boundary access fix
Diffstat (limited to 'src')
-rw-r--r--src/libserver/spf.c6
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;
}