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