Browse Source

[Minor] Add some sanity checks when doing simple canonicalization

tags/1.7.0
Vsevolod Stakhov 6 years ago
parent
commit
252f641b0b
1 changed files with 8 additions and 5 deletions
  1. 8
    5
      src/libserver/dkim.c

+ 8
- 5
src/libserver/dkim.c View 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);
}
}

Loading…
Cancel
Save