commit 2b49c69507c75bacfe7059627968cb6485ff36a2 from: Martijn van Duren date: Wed Mar 30 16:06:54 2022 UTC Use osmtpd_ltok_skip_sig_i_tag_value() instead of parsing it manually where not needed commit - 088e9e4957af3d265a30e14b2ab38b5693bb5d91 commit + 2b49c69507c75bacfe7059627968cb6485ff36a2 blob - 0dfd9a295c635a4809894cc834ccf5cd305bc391 blob + e637178de5a719aef0399ece16b12ec88038fd6a --- main.c +++ main.c @@ -776,18 +776,11 @@ dkim_signature_parse_h(struct signature *sig, const ch void dkim_signature_parse_i(struct signature *sig, const char *start, const char *end) { - const char *i; - if (sig->i != NULL) { dkim_signature_state(sig, DKIM_PERMERROR, "Duplicate i tag"); return; } - i = osmtpd_ltok_skip_local_part(start, 1); - if (i[0] != '@') { - dkim_signature_state(sig, DKIM_PERMERROR, "Invalid i tag"); - return; - } - if (osmtpd_ltok_skip_domain(i + 1, 0) != end) { + if (osmtpd_ltok_skip_sig_i_tag_value(start, 0) != end) { dkim_signature_state(sig, DKIM_PERMERROR, "Invalid i tag"); return; }