commit - f85da7301bab97460f5636a8e8da510df4a7a0ae
commit + efee726e37306bb059161d0518e365b1efe0a85a
blob - 4fe67bd413bf245ea27c234f845b3f3a87ce38c4
blob + 64c6e1f4d0a6c36ddc02b68175960d6942ee17d8
--- main.c
+++ main.c
if (sig->i != NULL) {
i = osmtpd_ltok_skip_local_part(sig->i, 1) + 1;
- ilen = strlen(i);
+ ilen = sig->isz - (size_t)(i - sig->i);
dlen = strlen(sig->d);
if (ilen < dlen) {
dkim_signature_state(sig, DKIM_PERMERROR,
return;
}
i += ilen - dlen;
- if ((i[-1] != '.' && i[-1] != '@') || strcmp(i, sig->d) != 0) {
+ if ((i[-1] != '.' && i[-1] != '@') ||
+ strncmp(i, sig->d, dlen) != 0) {
dkim_signature_state(sig, DKIM_PERMERROR,
- "i tagn not subdomain of d");
+ "i tag not subdomain of d");
return;
}
}