Bernhard Herzog <bh@intevation.de> writes:
On 15.10.2008, Bernhard Herzog wrote:
I recall having a similar problem with the Annotation plugin. IIRC it had something to do with not unregistering commands properly when the plugin was unloaded. In that case the array of known commands retains dangling pointers to the names of the commands that point to the unloaded shared object file.
I think this is indeed the case with the ACL plugin if it is patched to implement the ACL IMAP commands, as is the case in the kolab branch. The commands are only unregistered if acl_next_hook_mail_storage_created != NULL.
Now that variale is set in acl_plugin_init but there's no guarantee that it will always be != NULL afterwards. If the ACL plugin is the first plugin to change hook_mail_storage_created, acl_next_hook_mail_storage_created will be NULL after acl_plugin_init has been executed and registered the commands, but the deinit function will not unregister the commands.
Yes, I came to the same conclusion. I checked in a fix to the acl-branch[0] as well as to the generic kolab-branch[1] repository.
cheers sascha
[0] http://hg.intevation.org/kolab/dovecot-1.2_acl-branch/ [1] http://hg.intevation.org/kolab/dovecot-1.2_kolab-branch/
Sascha Wilde OpenPGP key: 4BB86568 http://www.intevation.de/~wilde/ http://www.intevation.de/ Intevation GmbH, Neuer Graben 17, 49074 Osnabrück; AG Osnabrück, HR B 18998 Geschäftsführer: Frank Koormann, Bernhard Reiter, Dr. Jan-Oliver Wagner