dovecot-1.2-sieve: Prevent assertion failure due to currupt bina...
pigeonhole at rename-it.nl
pigeonhole at rename-it.nl
Wed Aug 11 15:29:41 EEST 2010
details: http://hg.rename-it.nl/dovecot-1.2-sieve/rev/df0a62c936a0
changeset: 1268:df0a62c936a0
user: Stephan Bosch <stephan at rename-it.nl>
date: Wed Aug 11 14:29:27 2010 +0200
description:
Prevent assertion failure due to currupt binary string representation (missing \0).
diffstat:
src/lib-sieve/sieve-binary.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diffs (29 lines):
diff -r 92512f733520 -r df0a62c936a0 src/lib-sieve/sieve-binary.c
--- a/src/lib-sieve/sieve-binary.c Tue Aug 03 18:34:24 2010 +0200
+++ b/src/lib-sieve/sieve-binary.c Wed Aug 11 14:29:27 2010 +0200
@@ -1731,6 +1731,7 @@
(struct sieve_binary *binary, sieve_size_t *address, string_t **str_r)
{
unsigned int strlen = 0;
+ const char *strdata;
if ( !sieve_binary_read_unsigned(binary, address, &strlen) )
return FALSE;
@@ -1738,13 +1739,15 @@
if ( strlen > ADDR_BYTES_LEFT(binary, address) )
return FALSE;
- if ( str_r != NULL )
- *str_r = t_str_new_const((const char *) ADDR_POINTER(binary, address), strlen);
+ strdata = (const char *) ADDR_POINTER(binary, address);
ADDR_JUMP(address, strlen);
if ( ADDR_CODE_AT(binary, address) != 0 )
return FALSE;
+ if ( str_r != NULL )
+ *str_r = t_str_new_const(strdata, strlen);
+
ADDR_JUMP(address, 1);
return TRUE;
More information about the dovecot-cvs
mailing list