From 11ada0e23c7b9f6cd4af17d3f9b07b26f51452af Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan.bosch@open-xchange.com>
Date: Tue, 20 Jun 2023 01:13:08 +0200
Subject: [PATCH] lib-sieve: util: edit-mail - Fix assert occurring when bad
 header is encountered.

In that case, the header name and middle are empty, causing:

Panic: file edit-mail.c: line 820 (edit_mail_headers_parse): assertion failed: (body_offset > 0)

Fixed by skipping the bad header for parsing altogether.
---
 src/lib-sieve/util/edit-mail.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/lib-sieve/util/edit-mail.c b/src/lib-sieve/util/edit-mail.c
index c001090ce..e5c525c9d 100644
--- a/src/lib-sieve/util/edit-mail.c
+++ b/src/lib-sieve/util/edit-mail.c
@@ -767,6 +767,9 @@ static int edit_mail_headers_parse(struct edit_mail *edmail)
 			if (hdr == NULL || hdr->eoh)
 				break;
 
+			/* Skip bad headers */
+			if (hdr->name_len == 0)
+				continue;
 			/* We deny the existence of any `Content-Length:'
 			   header. This header is non-standard and it can wreak
 			   havok when the message is modified.
-- 
GitLab