commit 1c524edbef28493e3150e965d4d17cf05f705277 from: Martijn van Duren date: Thu Mar 24 18:12:42 2022 UTC Always move to dkim_message_verify from dkim_rr_resolve to avoid hangs 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); }