From 87cffb945e7167b6d6aa65acbbb3c76fd071994f Mon Sep 17 00:00:00 2001 From: Wez Furlong Date: Fri, 9 Jun 2023 13:06:27 -0700 Subject: [PATCH] dkim_sign.lua: avoid nil reference for additional_signatures --- assets/policy-extras/dkim_sign.lua | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/assets/policy-extras/dkim_sign.lua b/assets/policy-extras/dkim_sign.lua index 58425df5..67f3afbd 100644 --- a/assets/policy-extras/dkim_sign.lua +++ b/assets/policy-extras/dkim_sign.lua @@ -54,8 +54,8 @@ filename = "/full/path/to/key." # TODO: reception-time policy for signing based on DNS. policy = "TempFailIfNotInDNS" # Reject -policy = "SignAlways" # Sign and relay -policy = "SignOnlyIfInDNS" # Don't sign. Allow fallback to additional_signatures +#policy = "SignAlways" # Sign and relay +#policy = "SignOnlyIfInDNS" # Don't sign. Allow fallback to additional_signatures # The signature block is independent of the sender domain. # They are consulted based on the value of `base.additional_signatures` @@ -65,7 +65,7 @@ policy = "SignOnlyIfInDNS" # Don't sign. Allow fallback to additional_signatu [signature."MyESPName"] # Policy is interpreted differently for these policy = "Always" # Always add this signature -policy = "OnlyIfMissingDomainBlock" # Use this as a fallback +#policy = "OnlyIfMissingDomainBlock" # Use this as a fallback # specifies the signing domain for this signature block domain = "myesp.com" @@ -110,14 +110,16 @@ local function load_dkim_data(dkim_data_files) end -- Sanity checks - for _, signame in ipairs(data.base.additional_signatures) do - if not data.signature[signame] then - error( - string.format( - "dkim policy lists base.additional_signature '%s' but that signature is not defined in any signature block", - signame + if data.base.additional_signatures then + for _, signame in ipairs(data.base.additional_signatures) do + if not data.signature[signame] then + error( + string.format( + "dkim policy lists base.additional_signature '%s' but that signature is not defined in any signature block", + signame + ) ) - ) + end end end