Commit Diff


commit - a53d74c47d63ca76fbf3b82967cc4dbfe4ab34d5
commit + 226e5da88b4e419e2f8b9f15f603cc4fdd4caa60
blob - 5d2f23ceb493a8e95bafeef2992456de44f996ea
blob + a7a82037020642e9a0002a210b1a9348a35b2dfe
--- main.c
+++ main.c
@@ -644,7 +644,7 @@ dkim_signature_normalize(struct dkim_session *session)
 				continue;
 			skip -= checkpoint + 1;
 			if (!dkim_signature_need(session,
-			    skip > 3 ? 0 : 3 - skip))
+			    skip > 3 ? 0 : 3 - skip + 1))
 				return 0;
 			memmove(sig + checkpoint + 3,
 			    sig + checkpoint + skip,
@@ -697,7 +697,7 @@ dkim_signature_printf(struct dkim_session *session, ch
 	if ((len = vsnprintf(sig->signature + sig->len, sig->size - sig->len,
 	    fmt, ap)) >= sig->size - sig->len) {
 		va_end(ap);
-		if (!dkim_signature_need(session, len))
+		if (!dkim_signature_need(session, len + 1))
 			return 0;
 		va_start(ap, fmt);
 		if ((len = vsnprintf(sig->signature + sig->len, sig->size - sig->len,