From 3bb527e14fbc202af920ca63e43021344974f4e7 Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan.bosch@open-xchange.com>
Date: Fri, 26 Mar 2021 00:18:37 +0100
Subject: [PATCH] lib-sieve: plugins: include: ext-include-binary - Properly
 check whether binary dependency block load succeeded.

Otherwise, a segfault may occur on a corrupt binary.
---
 src/lib-sieve/plugins/include/ext-include-binary.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/lib-sieve/plugins/include/ext-include-binary.c b/src/lib-sieve/plugins/include/ext-include-binary.c
index 3711c30ff..11c1faaf8 100644
--- a/src/lib-sieve/plugins/include/ext-include-binary.c
+++ b/src/lib-sieve/plugins/include/ext-include-binary.c
@@ -252,6 +252,12 @@ static bool ext_include_binary_open
 	sieve_size_t offset;
 
 	sblock = sieve_binary_extension_get_block(sbin, ext);
+	if (sblock == NULL) {
+		e_error(svinst->event,
+			"include: failed to load dependency block of binary %s",
+			sieve_binary_path(sbin));
+		return FALSE;
+	}
 	block_id = sieve_binary_block_get_id(sblock);
 
 	offset = 0;
-- 
GitLab