git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
DKIM: signing with t but no x timestamp. Bug 2851
[exim.git]
/
src
/
src
/
dkim.c
diff --git
a/src/src/dkim.c
b/src/src/dkim.c
index 0a8ab6fb3e8559a0e0afe0f3dba0896917185396..63b16af39cea040e92178a2d9b1d61a36fe1c0f3 100644
(file)
--- a/
src/src/dkim.c
+++ b/
src/src/dkim.c
@@
-2,7
+2,7
@@
* Exim - an Internet mail transport agent *
*************************************************/
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) The Exim Maintainers 2020 - 202
2
*/
+/* Copyright (c) The Exim Maintainers 2020 - 202
3
*/
/* Copyright (c) University of Cambridge, 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
/* SPDX-License-Identifier: GPL-2.0-or-later */
/* Copyright (c) University of Cambridge, 1995 - 2018 */
/* See the file NOTICE for conditions of use and distribution. */
/* SPDX-License-Identifier: GPL-2.0-or-later */
@@
-83,7
+83,7
@@
for (dns_record * rr = dns_next_rr(dnsa, &dnss, RESET_ANSWERS);
return string_from_gstring(g);
}
return string_from_gstring(g);
}
- g
->ptr = 0;
/* overwrite previous record */
+ g
string_reset(g);
/* overwrite previous record */
}
bad:
}
bad:
@@
-289,7
+289,7
@@
else
break;
}
break;
}
-log_write(0, LOG_MAIN, "%
s", string_from_gstring(logmsg)
);
+log_write(0, LOG_MAIN, "%
Y", logmsg
);
return;
}
return;
}
@@
-720,8
+720,12
@@
if (dkim_domain)
if (!(dkim_timestamps_expanded = expand_string(dkim->dkim_timestamps)))
{ errwhen = US"dkim_timestamps"; goto expand_bad; }
else
if (!(dkim_timestamps_expanded = expand_string(dkim->dkim_timestamps)))
{ errwhen = US"dkim_timestamps"; goto expand_bad; }
else
- xval = (tval = (unsigned long) time(NULL))
- + strtoul(CCS dkim_timestamps_expanded, NULL, 10);
+ {
+ tval = (unsigned long) time(NULL);
+ xval = strtoul(CCS dkim_timestamps_expanded, NULL, 10);
+ if (xval > 0)
+ xval += tval;
+ }
if (!(sig = pdkim_init_sign(&dkim_sign_ctx, dkim_signing_domain,
dkim_signing_selector,
if (!(sig = pdkim_init_sign(&dkim_sign_ctx, dkim_signing_domain,
dkim_signing_selector,
@@
-741,6
+745,9
@@
if (dkim_domain)
if (!pdkim_set_sig_bodyhash(&dkim_sign_ctx, sig))
goto bad;
if (!pdkim_set_sig_bodyhash(&dkim_sign_ctx, sig))
goto bad;
+ dkim_signing_record = string_append_listele(dkim_signing_record, ':', dkim_signing_domain);
+ dkim_signing_record = string_append_listele(dkim_signing_record, ':', dkim_signing_selector);
+
if (!dkim_sign_ctx.sig) /* link sig to context chain */
dkim_sign_ctx.sig = sig;
else
if (!dkim_sign_ctx.sig) /* link sig to context chain */
dkim_sign_ctx.sig = sig;
else
@@
-822,7
+829,7
@@
authres_dkim(gstring * g)
{
int start = 0; /* compiler quietening */
{
int start = 0; /* compiler quietening */
-DEBUG(D_acl) start = g
->ptr
;
+DEBUG(D_acl) start = g
string_length(g)
;
for (pdkim_signature * sig = dkim_signatures; sig; sig = sig->next)
{
for (pdkim_signature * sig = dkim_signatures; sig; sig = sig->next)
{
@@
-884,10
+891,10
@@
for (pdkim_signature * sig = dkim_signatures; sig; sig = sig->next)
}
DEBUG(D_acl)
}
DEBUG(D_acl)
- if (g
->ptr
== start)
- debug_printf("DKIM:
no authres\n");
+ if (g
string_length(g)
== start)
+ debug_printf("DKIM:
\t
no authres\n");
else
else
- debug_printf("DKIM:
authres '%.*s'\n", g->ptr - start - 3, g->s + start + 3);
+ debug_printf("DKIM:
\t
authres '%.*s'\n", g->ptr - start - 3, g->s + start + 3);
return g;
}
return g;
}