Correct issue with relaxed/simple handling. Fixes: #910
[exim.git] / src / src / dkim.c
index 42b14b5da65f5d7cae07239a10c8a7579d2e496f..15e2b2ce20864e842fd0fd50262c7564351003e8 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/dkim.c,v 1.6 2009/10/15 08:27:37 tom Exp $ */
+/* $Cambridge: exim/src/src/dkim.c,v 1.9 2009/11/12 13:02:17 nm4 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -201,10 +201,12 @@ void dkim_exim_verify_finish(void) {
     sig = sig->next;
   }
 
-  /* Chop the last colon from the domain list */
-  if ((dkim_signers != NULL) &&
-      (Ustrlen(dkim_signers) > 0))
-    dkim_signers[Ustrlen(dkim_signers)-1] = '\0';
+  /* NULL-terminate and chop the last colon from the domain list */
+  if (dkim_signers != NULL) {
+    dkim_signers[dkim_signers_ptr] = '\0';
+    if (Ustrlen(dkim_signers) > 0)
+      dkim_signers[Ustrlen(dkim_signers)-1] = '\0';
+  }
 }
 
 
@@ -428,7 +430,7 @@ uschar *dkim_exim_sign(int dkim_fd,
   if (Ustrcmp(dkim_canon, "relaxed") == 0)
     pdkim_canon = PDKIM_CANON_RELAXED;
   else if (Ustrcmp(dkim_canon, "simple") == 0)
-    pdkim_canon = PDKIM_CANON_RELAXED;
+    pdkim_canon = PDKIM_CANON_SIMPLE;
   else {
     log_write(0, LOG_MAIN, "DKIM: unknown canonicalization method '%s', defaulting to 'relaxed'.\n",dkim_canon);
     pdkim_canon = PDKIM_CANON_RELAXED;
@@ -523,6 +525,6 @@ uschar *dkim_exim_sign(int dkim_fd,
   store_pool = old_pool;
   errno = save_errno;
   return rc;
-};
+}
 
 #endif