]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Fix] Use proper buffer length
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 3 Feb 2021 16:12:17 +0000 (16:12 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 3 Feb 2021 16:12:17 +0000 (16:12 +0000)
src/libserver/spf.c

index 63ed17ba42a3fa815847fb77565df409e219095b..c424282688579ab640e6ec5a10ab00e37e36c034 100644 (file)
@@ -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) {