From 22c1bca7ea857fc8da05bcb5475e4d2f3101e628 Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan@rename-it.nl>
Date: Tue, 4 Aug 2009 18:45:02 +0200
Subject: [PATCH] Include: fixed bug in /home/stephan substitution in sieve_dir
 path.

---
 .../plugins/include/ext-include-common.c      | 22 ++++++++++---------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/src/lib-sieve/plugins/include/ext-include-common.c b/src/lib-sieve/plugins/include/ext-include-common.c
index d01e5ec88..4bb25ff47 100644
--- a/src/lib-sieve/plugins/include/ext-include-common.c
+++ b/src/lib-sieve/plugins/include/ext-include-common.c
@@ -69,25 +69,27 @@ struct ext_include_interpreter_context {
 const char *ext_include_get_script_directory
 (enum ext_include_script_location location, const char *script_name)
 {
-	const char *sieve_dir;
+	const char *home, *sieve_dir;
 
 	switch ( location ) {
 	case EXT_INCLUDE_LOCATION_PERSONAL:
 		sieve_dir = getenv("SIEVE_DIR");
+		home = getenv("HOME");
 
 		if (sieve_dir == NULL) {
-			const char *home = getenv("HOME");
-			
-			sieve_dir = home_expand_tilde("~/sieve", home);	
-		}
+			if ( home == NULL )	{		
+				sieve_sys_error(
+					"include: sieve_dir and home not set for :personal script include "	
+					"(wanted script %s)", str_sanitize(script_name, 80));
+				return NULL;
+			}
 
-		if (sieve_dir == NULL) {
-			sieve_sys_error(
-				"include: sieve_dir and home not set for :personal script include "	
-				"(wanted script %s)", str_sanitize(script_name, 80));
-			return NULL;
+			sieve_dir = "~/sieve"; 
 		}
 
+		if ( home != NULL )
+			sieve_dir = home_expand_tilde(sieve_dir, home);	
+
 		break;
    	case EXT_INCLUDE_LOCATION_GLOBAL:
 		sieve_dir = getenv("SIEVE_GLOBAL_DIR");
-- 
GitLab