]> source.dussan.org Git - 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)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 15 Dec 2017 07:55:36 +0000 (07:55 +0000)
src/libserver/dkim.c

index a9c4ae66f1ed37d765ecc617850828dff50f7cab..d3aa7c0bcb35bfffbf6f06804181357ad8f4f578 100644 (file)
@@ -1868,18 +1868,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;
@@ -1888,7 +1890,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);
        }
 }