Commit Diff


commit - 2d83468e8de2920cd15b09a044c081feb2bf9bea
commit + 1c524edbef28493e3150e965d4d17cf05f705277
blob - b80cf4eb927bb7789db168414f3f9bb9634e945a
blob + 12c43a2f8a238a8ed27a39b174092cf014e5c243
--- main.c
+++ main.c
@@ -1105,19 +1105,19 @@ dkim_rr_resolve(struct asr_result *ar, void *arg)
 	if (ar->ar_h_errno == TRY_AGAIN || ar->ar_h_errno == NO_RECOVERY) {
 		dkim_signature_state(sig, DKIM_TEMPERROR,
 		    hstrerror(ar->ar_h_errno));
-		return;
+		goto verify;
 	}
 	if (ar->ar_h_errno != NETDB_SUCCESS) {
 		dkim_signature_state(sig, DKIM_PERMERROR,
 		    hstrerror(ar->ar_h_errno));
-		return;
+		goto verify;
 	}
 
 	unpack_init(&pack, ar->ar_data, ar->ar_datalen);
 	if (unpack_header(&pack, &h) != 0 ||
 	    unpack_query(&pack, &q) != 0) {
 		dkim_signature_state(sig, DKIM_PERMERROR, "Invalid dns/txt");
-		return;
+		goto verify;
 	}
 	for (; h.ancount > 0; h.ancount--) {
 		unpack_rr(&pack, &rr);
@@ -1156,6 +1156,7 @@ dkim_rr_resolve(struct asr_result *ar, void *arg)
 		if (!sig->header->msg->parsing_headers)
 			dkim_signature_verify(sig);
 	}
+ verify:
 	dkim_message_verify(sig->header->msg);
 }