From 46dd32be1ec5579c246aff857ab573a77d28fc6e Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan.bosch@open-xchange.com>
Date: Tue, 1 Oct 2024 20:38:18 +0200
Subject: [PATCH] lib-sieve: Assert that username is available in context upon
 execution or storage access

---
 src/lib-sieve/sieve-execute.c | 2 ++
 src/lib-sieve/sieve-storage.c | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/src/lib-sieve/sieve-execute.c b/src/lib-sieve/sieve-execute.c
index a395cc6be..05a4bda67 100644
--- a/src/lib-sieve/sieve-execute.c
+++ b/src/lib-sieve/sieve-execute.c
@@ -39,6 +39,8 @@ void sieve_execute_init(struct sieve_execute_env *eenv,
 			const struct sieve_script_env *senv,
 			enum sieve_execute_flags flags)
 {
+	i_assert(svinst->username != NULL);
+
 	i_zero(eenv);
 	eenv->svinst = svinst;
 	eenv->pool = pool;
diff --git a/src/lib-sieve/sieve-storage.c b/src/lib-sieve/sieve-storage.c
index caafd6294..c1900ee4d 100644
--- a/src/lib-sieve/sieve-storage.c
+++ b/src/lib-sieve/sieve-storage.c
@@ -274,6 +274,8 @@ int sieve_storage_alloc(struct sieve_instance *svinst, struct event *event,
 {
 	struct sieve_storage *storage;
 
+	i_assert(svinst->username != NULL);
+
 	i_assert(storage_class->v.alloc != NULL);
 	storage = storage_class->v.alloc();
 
-- 
GitLab