dovecot-1.2-sieve: lib-sieve: variables extension: Fixed code co...

pigeonhole at rename-it.nl pigeonhole at rename-it.nl
Mon Sep 16 02:14:25 EEST 2013


details:   http://hg.rename-it.nl/dovecot-1.2-sieve/rev/484b6f13131c
changeset: 1295:484b6f13131c
user:      Stephan Bosch <stephan at rename-it.nl>
date:      Mon Sep 16 01:14:17 2013 +0200
description:
lib-sieve: variables extension: Fixed code corruption bug in 'set' command.

diffstat:

 src/lib-sieve/plugins/variables/cmd-set.c |  24 ++++++++++++------------
 1 files changed, 12 insertions(+), 12 deletions(-)

diffs (35 lines):

diff -r d5188ad86a3d -r 484b6f13131c src/lib-sieve/plugins/variables/cmd-set.c
--- a/src/lib-sieve/plugins/variables/cmd-set.c	Mon Sep 16 01:02:34 2013 +0200
+++ b/src/lib-sieve/plugins/variables/cmd-set.c	Mon Sep 16 01:14:17 2013 +0200
@@ -321,19 +321,19 @@
 		str_truncate(value, EXT_VARIABLES_MAX_VARIABLE_SIZE);
 
 	/* Apply modifiers if necessary (sorted during code generation already) */
-	if ( str_len(value) > 0 ) {
-		for ( i = 0; i < mdfs; i++ ) {
-			string_t *new_value;
-			struct sieve_variables_modifier modf;
-				
-			if ( !ext_variables_opr_modifier_read(renv, address, &modf) ) {
-				value = NULL;
+	for ( i = 0; i < mdfs; i++ ) {
+		string_t *new_value;
+		struct sieve_variables_modifier modf;
+			
+		if ( !ext_variables_opr_modifier_read(renv, address, &modf) ) {
+			value = NULL;
 
-				sieve_runtime_trace_error(renv, "invalid modifier operand");
-				ret = SIEVE_EXEC_BIN_CORRUPT;
-				break;
-			}
-			
+			sieve_runtime_trace_error(renv, "invalid modifier operand");
+			ret = SIEVE_EXEC_BIN_CORRUPT;
+			break;
+		}
+
+		if ( str_len(value) > 0 ) {			
 			if ( modf.def != NULL && modf.def->modify != NULL ) {
 				if ( !modf.def->modify(value, &new_value) ) {
 					value = NULL;


More information about the dovecot-cvs mailing list