Blame 0001-openarc-header-leading-space.patch

cbf214e
commit 783f4475291c9c2393e37ead83947dcad4706982
cbf214e
Author: Murray S. Kucherawy <msk@trusteddomain.org>
cbf214e
Date:   Mon Sep 17 10:37:34 2018 -0700
366d11d
cbf214e
    Fix issue #100: Correct application of sendmail's "no lead space"
cbf214e
    flag when adding seal header fields.  Reported by Matt Domsch.
366d11d
cbf214e
diff --git a/RELEASE_NOTES b/RELEASE_NOTES
cbf214e
index e2154a6..7889af4 100644
cbf214e
--- a/RELEASE_NOTES
cbf214e
+++ b/RELEASE_NOTES
cbf214e
@@ -4,11 +4,13 @@ This listing shows the versions of the OpenARC package, the date of
cbf214e
 release, and a summary of the changes in that release.
cbf214e
 
cbf214e
 0.1.1		2018/??/??
cbf214e
-	Add FinalReceiver configuration option. When enabled, this filter will
cbf214e
-		append "arc.chain=dom(n)...dom(1)" custody chain data to the A-R field.
cbf214e
+	Add FinalReceiver configuration option.
cbf214e
 	Fix issue #47: Fix syntax of ARC-Authentication-Results with respect
cbf214e
 		to semicolons.  Problem noted by Matt Domsch; based on a
cbf214e
 		patch from Ben Arblaster.
cbf214e
+	Fix issue #100: Correct application of sendmail's "no lead space"
cbf214e
+		flag when adding seal header fields.  Reported by Matt
cbf214e
+		Domsch.
cbf214e
 
cbf214e
 0.1.0		2017/12/06
cbf214e
 	Initial pre-release.
cbf214e
diff --git a/openarc/openarc.c b/openarc/openarc.c
cbf214e
index ca6107d..bc5dee3 100644
cbf214e
--- a/openarc/openarc.c
cbf214e
+++ b/openarc/openarc.c
cbf214e
@@ -3666,22 +3666,26 @@ mlfi_eom(SMFICTX *ctx)
cbf214e
 		     sealhdr = arc_hdr_next(sealhdr))
cbf214e
 		{
cbf214e
 			size_t len;
cbf214e
-			u_char *hfptr;
cbf214e
-			u_char *hfdest;
cbf214e
+			u_char *hfvdest;
cbf214e
 			u_char hfname[BUFRSZ + 1];
cbf214e
+			u_char hfvalue[BUFRSZ + 1];
cbf214e
 
cbf214e
-			hfptr = arc_hdr_name(sealhdr, &len;;
cbf214e
-			hfdest = hfname;
366d11d
 			memset(hfname, '\0', sizeof hfname);
cbf214e
+			strlcpy(hfname, arc_hdr_name(sealhdr, &len),
cbf214e
+			        sizeof hfname);
cbf214e
+			hfname[len] = '\0';
cbf214e
+
cbf214e
+			hfvdest = hfvalue;
cbf214e
+			memset(hfvalue, '\0', sizeof hfvalue);
cbf214e
 			if (cc->cctx_noleadspc)
cbf214e
 			{
366d11d
-				hfname[0] = ' ';
366d11d
-				hfdest++;
cbf214e
+				hfvalue[0] = ' ';
cbf214e
+				hfvdest++;
cbf214e
 			}
cbf214e
-			strncpy(hfdest, hfptr, len);
cbf214e
+			strlcat(hfvalue, arc_hdr_value(sealhdr),
cbf214e
+			        sizeof hfvalue);
366d11d
 
cbf214e
-			status = arcf_insheader(ctx, 1, hfname,
cbf214e
-			                        arc_hdr_value(sealhdr));
cbf214e
+			status = arcf_insheader(ctx, 1, hfname, hfvalue);
cbf214e
 			if (status == MI_FAILURE)
cbf214e
 			{
cbf214e
 				if (conf->conf_dolog)