From 91b6a0040cdaeaf6f4d933da893d10d82d951d50 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Wed, 3 Feb 2021 16:12:17 +0000 Subject: [PATCH] [Fix] Use proper buffer length --- src/libserver/spf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libserver/spf.c b/src/libserver/spf.c index 63ed17ba4..c42428268 100644 --- a/src/libserver/spf.c +++ b/src/libserver/spf.c @@ -1777,7 +1777,7 @@ expand_spf_macro (struct spf_record *rec, struct spf_resolved_element *resolved, gchar *c, *new, *tmp, delim = '.'; gsize len = 0, slen = 0, macro_len = 0; gint state = 0, ndelim = 0; - gchar ip_buf[INET6_ADDRSTRLEN * 2 + 1]; + gchar ip_buf[64 + 1]; /* cannot use INET6_ADDRSTRLEN as we use ptr lookup */ gboolean need_expand = FALSE, reversed; struct rspamd_task *task; @@ -1830,7 +1830,7 @@ expand_spf_macro (struct spf_record *rec, struct spf_resolved_element *resolved, /* Read macro name */ switch (g_ascii_tolower (*p)) { case 'i': - len += INET6_ADDRSTRLEN - 1; + len += sizeof (ip_buf) - 1; break; case 's': if (rec->sender) { -- 2.39.5