commit 1e0caa5: [Minor] Another try to fix 'IPv6:' prefix

Vsevolod Stakhov vsevolod at highsecure.ru
Thu Feb 7 17:28:08 UTC 2019


Author: Vsevolod Stakhov
Date: 2019-02-07 17:21:03 +0000
URL: https://github.com/rspamd/rspamd/commit/1e0caa55d3f1910973694d6481a13c689212a1cd

[Minor] Another try to fix 'IPv6:' prefix

---
 src/libutil/addr.c | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/src/libutil/addr.c b/src/libutil/addr.c
index 022a94559..fd4621aef 100644
--- a/src/libutil/addr.c
+++ b/src/libutil/addr.c
@@ -528,6 +528,13 @@ rspamd_parse_inet_address_ip6 (const guchar *text, gsize len, gpointer target)
 		len = percent - p; /* Ignore scope */
 	}
 
+	if (len > sizeof ("IPv6:") - 1 &&
+		g_ascii_strncasecmp (p, "IPv6:", sizeof ("IPv6:") - 1) == 0) {
+		/* Special case, SMTP conformant IPv6 address */
+		p += sizeof ("IPv6:") - 1;
+		len -= sizeof ("IPv6:") - 1;
+	}
+
 	for (/* void */; len; len--) {
 		t = *p++;
 
@@ -735,16 +742,7 @@ rspamd_parse_inet_address_common (rspamd_inet_addr_t **target,
 			return FALSE;
 		}
 
-		if (iplen > sizeof ("IPv6:") - 1 &&
-			g_ascii_strncasecmp (src + 1, "IPv6:", sizeof ("IPv6:") - 1) == 0) {
-			/* Special case, SMTP conformant IPv6 address */
-			ip_start = src + 1 + sizeof ("IPv6:") - 1;
-			iplen -= sizeof ("IPv6:") - 1;
-		}
-		else {
-			ip_start = src + 1;
-		}
-
+		ip_start = src + 1;
 		rspamd_strlcpy (ipbuf, ip_start, iplen + 1);
 
 		if (rspamd_parse_inet_address_ip6 (ipbuf, iplen,


More information about the Commits mailing list