From bc303d17ed8f01a96b7d2b6796f43fd3cdc6b86d Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan.bosch@open-xchange.com>
Date: Sun, 13 Oct 2024 00:48:21 +0200
Subject: [PATCH] lib-sieve: sieve-storage - Always create new child event in
 sieve_storage_alloc()

---
 src/lib-sieve/sieve-storage.c | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/src/lib-sieve/sieve-storage.c b/src/lib-sieve/sieve-storage.c
index 95d46f992..069fb6602 100644
--- a/src/lib-sieve/sieve-storage.c
+++ b/src/lib-sieve/sieve-storage.c
@@ -338,29 +338,24 @@ sieve_storage_alloc_from_class(struct sieve_instance *svinst,
 	return 0;
 }
 
-int sieve_storage_alloc(struct sieve_instance *svinst, struct event *event,
+int sieve_storage_alloc(struct sieve_instance *svinst,
+			struct event *event_parent,
 			const struct sieve_storage *storage_class,
 			const char *data, enum sieve_storage_flags flags,
 			bool main, struct sieve_storage **storage_r,
 			enum sieve_error *error_code_r, const char **error_r)
 {
+	struct event *storage_event, *event;
 	struct sieve_storage *storage;
 	int ret;
 
 	*storage_r = NULL;
 	sieve_error_args_init(&error_code_r, &error_r);
 
-	if (event != NULL)
-		event_ref(event);
-	else {
-		struct event *storage_event;
-
-		storage_event = sieve_storage_create_event(
-			svinst, svinst->event);
-		event = sieve_storage_create_driver_event(
-			storage_event, storage_class->driver_name);
-		event_unref(&storage_event);
-	}
+	storage_event = sieve_storage_create_event(svinst, event_parent);
+	event = sieve_storage_create_driver_event(storage_event,
+						  storage_class->driver_name);
+	event_unref(&storage_event);
 
 	ret = sieve_storage_alloc_from_class(svinst, event, storage_class,
 					     data, flags,
-- 
GitLab