From 0a191d4b5636bb5e3f0ceb84fff89be25026987b Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan@rename-it.nl>
Date: Tue, 5 Apr 2016 11:43:36 +0200
Subject: [PATCH] lib-sieve: Make sure that an absent envelope does not cause
 segfaults.

Futher changes are needed to prevent accessing the envelope in the first place.
---
 src/lib-sieve/sieve-message.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/lib-sieve/sieve-message.c b/src/lib-sieve/sieve-message.c
index 003249f3a..2c2ace7b7 100644
--- a/src/lib-sieve/sieve-message.c
+++ b/src/lib-sieve/sieve-message.c
@@ -327,7 +327,9 @@ static void sieve_message_envelope_parse(struct sieve_message_context *msgctx)
 				msgdata->final_envelope_to);
 		}
 	} else if ( msgctx->envelope_final_recipient->local_part == NULL ) {
-		if ( strcmp(msgdata->orig_envelope_to, msgdata->final_envelope_to) != 0 ) {
+		if (msgdata->orig_envelope_to != NULL &&
+			msgdata->final_envelope_to != NULL &&
+			strcmp(msgdata->orig_envelope_to, msgdata->final_envelope_to) != 0 ) {
 			sieve_sys_warning(svinst,
 				"final envelope recipient address '%s' is a null path",
 				msgdata->final_envelope_to);
-- 
GitLab