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