[SOLVED] Crash: setannotation Trash "/vendor/cmu/cyrus-imapd/expire" ("value.shared" NIL)
Heiko Schlittermann
hs at schlittermann.de
Wed Apr 27 09:36:27 UTC 2016
Hi,
just for the records. The dovecot-metadata-plugin found on
http://hg.dovecot.org/dovecot-metadata-plugin (not in use anymore?)
needs one change to make it compile on Ubuntu 14.04 and probably other
current compilers. And a 2nd change that avoids a crash on deleting
an annotation.
I need this plugin with a dovecot 2.2.9 to store mailbox annotations (expiry
information imported/migrated from a cyrus server, to be more precise).
If dovecot provides ANNOTATION capabilities on it's own, I missed it...
Please correct me, if I'm wrong. In a current clone of dovecot-core I do
not find any traces that indicate support for ANNOATION. But again, I
may be wrong, as I do often.
changeset: 237:219c13a7696d
bookmark: hs12
tag: tip
user: Heiko Schlittermann <hs at schlittermann.de>
date: Wed Apr 27 11:27:14 2016 +0200
summary: Check the Value before using strlen()
diff -r 79ce82ce7279 -r 219c13a7696d src/metadata-backend.c
--- a/src/metadata-backend.c Wed Apr 27 10:37:11 2016 +0200
+++ b/src/metadata-backend.c Wed Apr 27 11:27:14 2016 +0200
@@ -130,7 +130,7 @@
if (!metadata_entry_is_valid(entry))
return -METADATA_ERROR_INVALID;
- if (strlen(metadata_entry_get_value(entry)) > muser->set->maxsize)
+ if (entry->value && strlen(metadata_entry_get_value(entry)) > muser->set->maxsize)
return -METADATA_ERROR_TOOLARGE;
if (count_entries(muser) > muser->set->maxentries)
return -METADATA_ERROR_TOOMANY;
changeset: 236:79ce82ce7279
user: Heiko Schlittermann <hs at schlittermann.de>
date: Wed Apr 27 10:37:11 2016 +0200
summary: make it compile
diff -r b6df1381bb79 -r 79ce82ce7279 src/imap-metadata-plugin.c
--- a/src/imap-metadata-plugin.c Sun Oct 27 12:50:20 2013 +0100
+++ b/src/imap-metadata-plugin.c Wed Apr 27 10:37:11 2016 +0200
@@ -448,7 +448,7 @@
}
-static bool
+bool
cmd_getmetadata(struct client_command_context *cmd) {
int maxsize = 0, depth = 0;
@@ -739,7 +739,7 @@
}
-static bool
+bool
cmd_setmetadata(struct client_command_context *cmd) {
const struct imap_arg *args;
if (!client_read_args(cmd, 0, 0, &args))
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: Digital signature
URL: <http://dovecot.org/pipermail/dovecot/attachments/20160427/474d5399/attachment-0001.sig>
More information about the dovecot
mailing list