From 3d88888a73ad3618f83f14a193d0fef736820df8 Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan@rename-it.nl>
Date: Tue, 26 Aug 2008 20:36:39 +0200
Subject: [PATCH] Include: fixed a stupid bug triggered when variables are not
 used.

---
 src/lib-sieve/plugins/variables/ext-variables-common.c        | 2 +-
 tests/extensions/include/errors/action-conflicts.sieve        | 4 ++++
 .../extensions/include/errors/included/action-fileinto.sieve  | 3 +++
 tests/extensions/include/errors/included/action-reject.sieve  | 3 +++
 tests/extensions/include/errors/runtime.sieve                 | 4 ----
 5 files changed, 11 insertions(+), 5 deletions(-)
 create mode 100644 tests/extensions/include/errors/action-conflicts.sieve
 create mode 100644 tests/extensions/include/errors/included/action-fileinto.sieve
 create mode 100644 tests/extensions/include/errors/included/action-reject.sieve
 delete mode 100644 tests/extensions/include/errors/runtime.sieve

diff --git a/src/lib-sieve/plugins/variables/ext-variables-common.c b/src/lib-sieve/plugins/variables/ext-variables-common.c
index cf8c04f93..7d8d5c298 100644
--- a/src/lib-sieve/plugins/variables/ext-variables-common.c
+++ b/src/lib-sieve/plugins/variables/ext-variables-common.c
@@ -468,7 +468,7 @@ void sieve_ext_variables_set_storage
 	struct ext_variables_interpreter_context *ctx = 
 		ext_variables_interpreter_context_get(interp);
 		
-	if ( ext == NULL || storage == NULL )
+	if ( ctx == NULL || ext == NULL || storage == NULL )
 		return;
 		
 	array_idx_set(&ctx->ext_storages, (unsigned int) *ext->id, &storage);
diff --git a/tests/extensions/include/errors/action-conflicts.sieve b/tests/extensions/include/errors/action-conflicts.sieve
new file mode 100644
index 000000000..ddeb42cd6
--- /dev/null
+++ b/tests/extensions/include/errors/action-conflicts.sieve
@@ -0,0 +1,4 @@
+require "include";
+
+include "action-fileinto";
+include "action-reject";
diff --git a/tests/extensions/include/errors/included/action-fileinto.sieve b/tests/extensions/include/errors/included/action-fileinto.sieve
new file mode 100644
index 000000000..9aafb9503
--- /dev/null
+++ b/tests/extensions/include/errors/included/action-fileinto.sieve
@@ -0,0 +1,3 @@
+require "fileinto";
+
+fileinto "frop";
diff --git a/tests/extensions/include/errors/included/action-reject.sieve b/tests/extensions/include/errors/included/action-reject.sieve
new file mode 100644
index 000000000..6e7b0b0cf
--- /dev/null
+++ b/tests/extensions/include/errors/included/action-reject.sieve
@@ -0,0 +1,3 @@
+require "reject";
+
+reject "Ik heb geen zin in die rommel.";
diff --git a/tests/extensions/include/errors/runtime.sieve b/tests/extensions/include/errors/runtime.sieve
deleted file mode 100644
index fe640b049..000000000
--- a/tests/extensions/include/errors/runtime.sieve
+++ /dev/null
@@ -1,4 +0,0 @@
-require "include";
-require "variables";
-
-import "frop";
-- 
GitLab