]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Add some sanity checks when doing simple canonicalization
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 15 Dec 2017 07:55:36 +0000 (07:55 +0000)
committerAndrew Lewis <nerf@judo.za.org>
Wed, 24 Jan 2018 09:55:35 +0000 (11:55 +0200)
src/libserver/dkim.c

index 522f96a78dffda1ece55a623d114b258a5ac10b4..62b1f9cc36b8b0e0e48bec61fe6e60796552e36e 100644 (file)
@@ -1744,18 +1744,20 @@ rspamd_dkim_hash_update (EVP_MD_CTX *ck, const gchar *begin, gsize len)
        end = begin + len;
        p = begin;
        c = p;
-       while (p != end) {
+
+       while (p < end) {
                if (*p == '\r') {
-                       EVP_DigestUpdate (ck, c,         p - c);
+                       EVP_DigestUpdate (ck, c, p - c);
                        EVP_DigestUpdate (ck, CRLF, sizeof (CRLF) - 1);
                        p++;
-                       if (*p == '\n') {
+
+                       if (p < end && *p == '\n') {
                                p++;
                        }
                        c = p;
                }
                else if (*p == '\n') {
-                       EVP_DigestUpdate (ck, c,         p - c);
+                       EVP_DigestUpdate (ck, c, p - c);
                        EVP_DigestUpdate (ck, CRLF, sizeof (CRLF) - 1);
                        p++;
                        c = p;
@@ -1764,7 +1766,8 @@ rspamd_dkim_hash_update (EVP_MD_CTX *ck, const gchar *begin, gsize len)
                        p++;
                }
        }
-       if (p != c) {
+
+       if (p > c) {
                EVP_DigestUpdate (ck, c, p - c);
        }
 }