dovecot-2.2-pigeonhole: lib-sieve: storage: Check Sieve script n...
    pigeonhole at rename-it.nl 
    pigeonhole at rename-it.nl
       
    Thu May  7 19:49:43 UTC 2015
    
    
  
details:   http://hg.rename-it.nl/dovecot-2.2-pigeonhole/rev/eb001d7bbabf
changeset: 2047:eb001d7bbabf
user:      Stephan Bosch <stephan at rename-it.nl>
date:      Thu May 07 21:41:24 2015 +0200
description:
lib-sieve: storage: Check Sieve script name validity in configuration.
diffstat:
 src/lib-sieve/sieve-storage.c |  20 +++++++++++++++++---
 1 files changed, 17 insertions(+), 3 deletions(-)
diffs (42 lines):
diff -r eeef7010b52e -r eb001d7bbabf src/lib-sieve/sieve-storage.c
--- a/src/lib-sieve/sieve-storage.c	Thu May 07 21:17:40 2015 +0200
+++ b/src/lib-sieve/sieve-storage.c	Thu May 07 21:41:24 2015 +0200
@@ -196,8 +196,16 @@
 					return -1;
 				}
 
-				if ( storage->script_name == NULL )
+				if ( storage->script_name == NULL ) {
+					if ( !sieve_script_name_is_valid(option+5) ) {
+						sieve_storage_sys_error(storage,
+							"Failed to parse storage location: "
+							"Invalid script name `%s'.",
+							str_sanitize(option+5, 80));
+						return -1;
+					}
 					storage->script_name = p_strdup(storage->pool, option+5);
+				}
 
 			} else if ( strncasecmp(option, "bindir=", 7) == 0 ) {
 				const char *bin_dir = option+7;
@@ -486,12 +494,18 @@
 		set_default =
 			 sieve_setting_get(svinst, "sieve_global_path");
 	}
-	set_default_name =
-		 sieve_setting_get(svinst, "sieve_default_name");
 
 	/* Attempt to locate user's main storage */
 	storage = sieve_storage_do_create_main(svinst, user, flags, error_r);
 
+	set_default_name =
+		 sieve_setting_get(svinst, "sieve_default_name");
+	if ( !sieve_script_name_is_valid(set_default_name) ) {
+		sieve_storage_sys_error(storage,
+			"Invalid script name `%s' for `sieve_default_name' setting.",
+			str_sanitize(set_default_name, 80));
+		set_default_name = NULL;
+	}
 	storage->default_name =
 		p_strdup_empty(storage->pool, set_default_name);
 
    
    
More information about the dovecot-cvs
mailing list