dovecot-2.0-pigeonhole: Prevent assertion failure due to currupt...

pigeonhole at rename-it.nl pigeonhole at rename-it.nl
Wed Aug 11 15:27:25 EEST 2010


details:   http://hg.rename-it.nl/dovecot-2.0-pigeonhole/rev/89756b38a8c6
changeset: 1362:89756b38a8c6
user:      Stephan Bosch <stephan at rename-it.nl>
date:      Wed Aug 11 14:27:09 2010 +0200
description:
Prevent assertion failure due to currupt binary string representation (missing \0).

diffstat:

 src/lib-sieve/sieve-binary-code.c |  7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diffs (28 lines):

diff -r 928551d558d6 -r 89756b38a8c6 src/lib-sieve/sieve-binary-code.c
--- a/src/lib-sieve/sieve-binary-code.c	Wed Aug 11 13:52:59 2010 +0200
+++ b/src/lib-sieve/sieve-binary-code.c	Wed Aug 11 14:27:09 2010 +0200
@@ -316,6 +316,7 @@
 (struct sieve_binary_block *sblock, sieve_size_t *address, string_t **str_r) 
 {
 	unsigned int strlen = 0;
+	const char *strdata;
 
 	ADDR_CODE_READ(sblock);
   
@@ -325,12 +326,14 @@
 	if ( strlen > ADDR_BYTES_LEFT(address) ) 
 		return FALSE;
  
- 	if ( str_r != NULL )  
-		*str_r = t_str_new_const((const char *) ADDR_POINTER(address), strlen);
+	strdata = (const char *) ADDR_POINTER(address);
 	ADDR_JUMP(address, strlen);
 	
 	if ( ADDR_CODE_AT(address) != 0 )
 		return FALSE;
+
+ 	if ( str_r != NULL )  
+		*str_r = t_str_new_const(strdata, strlen);
 	
 	ADDR_JUMP(address, 1);
   


More information about the dovecot-cvs mailing list