DKIM: DNS records having no v= tag are acceptable. Bug 2207
authorJeremy Harris <jgh146exb@wizmail.org>
Sun, 14 Jan 2018 18:40:50 +0000 (18:40 +0000)
committerJeremy Harris <jgh146exb@wizmail.org>
Sun, 14 Jan 2018 18:40:50 +0000 (18:40 +0000)
Broken-by c73a4d073e

src/src/dkim.c
src/src/pdkim/pdkim.c

index 8c03d48cef91e56a541866e5c01d8668f18526c5..852ae17f3c5398642139b6f0c7372e2968798013 100644 (file)
@@ -75,7 +75,8 @@ for (rr = dns_next_rr(&dnsa, &dnss, RESET_ANSWERS);
       }
 
     /* check if this looks like a DKIM record */
       }
 
     /* check if this looks like a DKIM record */
-    if (strncasecmp(answer, "v=dkim", 6) != 0) continue;
+    if (strncmp(answer, "v=", 2) == 0 && strncasecmp(answer, "v=dkim", 6) != 0)
+      continue;
     return PDKIM_OK;
     }
 
     return PDKIM_OK;
     }
 
index b884671da9867888e04ffb6362e24a1543abad68..186258a621334bc537b73be718d2f87eb3cedf18 100644 (file)
@@ -654,7 +654,8 @@ while ((ele = string_nextinlist(&raw_record, &sep, NULL, 0)))
   }
 
 /* Set fallback defaults */
   }
 
 /* Set fallback defaults */
-if (!pub->version    ) pub->version     = string_copy(PDKIM_PUB_RECORD_VERSION);
+if (!pub->version)
+  pub->version = string_copy(PDKIM_PUB_RECORD_VERSION);
 else if (Ustrcmp(pub->version, PDKIM_PUB_RECORD_VERSION) != 0)
   {
   DEBUG(D_acl) debug_printf(" Bad v= field\n");
 else if (Ustrcmp(pub->version, PDKIM_PUB_RECORD_VERSION) != 0)
   {
   DEBUG(D_acl) debug_printf(" Bad v= field\n");