From c744cea00a5775c57a78165a83b34a1fa3ac0715 Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan@rename-it.nl> Date: Sat, 27 Dec 2008 14:11:20 +0100 Subject: [PATCH] Fixed segfault bug in extension handling. --- src/lib-sieve/sieve-extensions.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/lib-sieve/sieve-extensions.c b/src/lib-sieve/sieve-extensions.c index dd8a7f090..9b21026e2 100644 --- a/src/lib-sieve/sieve-extensions.c +++ b/src/lib-sieve/sieve-extensions.c @@ -282,7 +282,8 @@ void sieve_extensions_set_string(const char *ext_string) eregs = array_get_modifiable(&extensions, &ext_count); for ( i = 0; i < ext_count; i++ ) { - *(eregs[i].extension->_id) = eregs[i].id; + if ( eregs[i].extension->_id == NULL ) + *(eregs[i].extension->_id) = eregs[i].id; } return; @@ -336,10 +337,13 @@ void sieve_extensions_set_string(const char *ext_string) } } - if ( disabled ) { - *(eregs[i].extension->_id) = -1; - } else { - *(eregs[i].extension->_id) = eregs[i].id; + if ( eregs[i].extension->_id != NULL && + *(eregs[i].extension->name) != '@' ) { + if ( disabled ) { + *(eregs[i].extension->_id) = -1; + } else { + *(eregs[i].extension->_id) = eregs[i].id; + } } } } -- GitLab