]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Fix] Handle some bad IP URLs
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 2 Mar 2016 11:52:39 +0000 (11:52 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 2 Mar 2016 11:52:39 +0000 (11:52 +0000)
src/libserver/url.c

index fcb72a76bb7204b2a3a1fdf4ffe47164e8ec7977..76306d9befd751af12a58ab7ea34c972bc2dc05f 100644 (file)
@@ -1184,7 +1184,12 @@ rspamd_url_is_ip (struct rspamd_url *uri, rspamd_mempool_t *pool)
                while (p <= end && check_num) {
                        if (shift < 32 &&
                                ((*p == '.' && dots < 3) || (p == end && dots <= 3))) {
-                               g_assert (p - c + 1 < (gint) sizeof (buf));
+                               if (p - c + 1 >= (gint) sizeof (buf)) {
+                                       msg_err_pool ("invalid numeric url %*.s...: too long",
+                                                       INET6_ADDRSTRLEN, c);
+                                       return FALSE;
+                               }
+
                                rspamd_strlcpy (buf, c, p - c + 1);
                                c = p + 1;