From: Vsevolod Stakhov Date: Fri, 15 Dec 2017 07:55:36 +0000 (+0000) Subject: [Minor] Add some sanity checks when doing simple canonicalization X-Git-Tag: 1.7.0~342 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=252f641b0b8b80f80973358d082f1d1aa1418b28;p=thirdparty%2Frspamd.git [Minor] Add some sanity checks when doing simple canonicalization --- diff --git a/src/libserver/dkim.c b/src/libserver/dkim.c index a9c4ae66f1..d3aa7c0bcb 100644 --- a/src/libserver/dkim.c +++ b/src/libserver/dkim.c @@ -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); } }