dovecot-2.2-pigeonhole: lib-sieve: file storage: Fixed assert fa...
pigeonhole at rename-it.nl
pigeonhole at rename-it.nl
Tue Aug 5 01:56:03 UTC 2014
details: http://hg.rename-it.nl/dovecot-2.2-pigeonhole/rev/860c4e547490
changeset: 1906:860c4e547490
user: Stephan Bosch <stephan at rename-it.nl>
date: Tue Aug 05 03:55:56 2014 +0200
description:
lib-sieve: file storage: Fixed assert failure in script sequence code.
Single script was only initialized and not actually opened.
diffstat:
src/lib-sieve/storage/file/sieve-file-script-sequence.c | 2 +-
src/lib-sieve/storage/file/sieve-file-script.c | 19 +++++++++++++++++
src/lib-sieve/storage/file/sieve-file-storage.h | 2 +
3 files changed, 22 insertions(+), 1 deletions(-)
diffs (53 lines):
diff -r 35ff96d4c61b -r 860c4e547490 src/lib-sieve/storage/file/sieve-file-script-sequence.c
--- a/src/lib-sieve/storage/file/sieve-file-script-sequence.c Tue Aug 05 03:47:36 2014 +0200
+++ b/src/lib-sieve/storage/file/sieve-file-script-sequence.c Tue Aug 05 03:55:56 2014 +0200
@@ -210,7 +210,7 @@
fscript = NULL;
if ( fseq->storage_is_file ) {
if ( fseq->index++ < 1 )
- fscript = sieve_file_script_init_from_name(fstorage, NULL);
+ fscript = sieve_file_script_open_from_name(fstorage, NULL);
} else {
files = array_get(&fseq->script_files, &count);
diff -r 35ff96d4c61b -r 860c4e547490 src/lib-sieve/storage/file/sieve-file-script.c
--- a/src/lib-sieve/storage/file/sieve-file-script.c Tue Aug 05 03:47:36 2014 +0200
+++ b/src/lib-sieve/storage/file/sieve-file-script.c Tue Aug 05 03:55:56 2014 +0200
@@ -161,6 +161,25 @@
return fscript;
}
+struct sieve_file_script *sieve_file_script_open_from_name
+(struct sieve_file_storage *fstorage, const char *name)
+{
+ struct sieve_file_script *fscript;
+ enum sieve_error error;
+
+ fscript = sieve_file_script_init_from_name(fstorage, name);
+ if ( fscript == NULL )
+ return NULL;
+
+ if ( sieve_script_open(&fscript->script, &error) < 0 ) {
+ struct sieve_script *script = &fscript->script;
+ sieve_script_unref(&script);
+ return NULL;
+ }
+
+ return fscript;
+}
+
struct sieve_file_script *sieve_file_script_init_from_path
(struct sieve_file_storage *fstorage, const char *path,
const char *scriptname, enum sieve_error *error_r)
diff -r 35ff96d4c61b -r 860c4e547490 src/lib-sieve/storage/file/sieve-file-storage.h
--- a/src/lib-sieve/storage/file/sieve-file-storage.h Tue Aug 05 03:47:36 2014 +0200
+++ b/src/lib-sieve/storage/file/sieve-file-storage.h Tue Aug 05 03:55:56 2014 +0200
@@ -145,6 +145,8 @@
const char *scriptname);
struct sieve_file_script *sieve_file_script_init_from_name
(struct sieve_file_storage *fstorage, const char *name);
+struct sieve_file_script *sieve_file_script_open_from_name
+ (struct sieve_file_storage *fstorage, const char *name);
struct sieve_file_script *sieve_file_script_init_from_path
(struct sieve_file_storage *fstorage, const char *path,
More information about the dovecot-cvs
mailing list