[Dovecot] MANAGESIEVE patch v4 for dovecot 1.0.rc28 / problems

Stephan Bosch sirius at drunksnipers.com
Sun Apr 8 17:10:30 EEST 2007


Robert Schetterer wrote:
> Hi,ok setui above works
> using avelsieve squirrelmail plugin
> with managesieve dovecot latest
> (perhaps i shouldnt use 1.30 rc)
> as well there may be other problems between suse and quotawarn patches )
> please see this just as info to help coders to debug
> 
> following problems in logs appear
>  
> /var/log/messages
> 
> 9 04:51:41 suse10-2-vmware kernel: managesieve-log[2326]: segfault at
> 0000000000000000 rip 0000000000000000 rsp 00007fff8995b938 error 14
> 
> i  have no idea where this comes from
Hmm. That's not good.. what ever happens, dovecot(-managesieve) must 
never segfault. Maybe you could provide a core-dump. Btw, I don't really 
know what managesieve-log is supposed to be. Timo, any ideas?

> /var/log/dovcot.info
> 
> dovecot: Apr 09 04:55:00 Info: IMAP(tester at example.de): Disconnected:
> Logged out
> dovecot: Apr 09 04:55:08 Info: managesieve-login: Login:
> user=<tester at example.de>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, TLS
> dovecot: Apr 09 04:55:08 Info: MANAGESIEVE(tester at example.de): Effective
> uid=1001, gid=1001
> dovecot: Apr 09 04:55:08 Info: MANAGESIEVE(tester at example.de): sieve
> storage: Using active sieve script path:
> /usr/local/virtual/tester at example.de//.dovecot.sieve
> 
> ( this line looks strange to me, but it musnt be false )
That looks very strange. Assuming you are not using the userdb to 
specify the SIEVE path (code directly borrowed from dovecot-sieve), 'the 
problem' seems to be that the home directory of tester at example.de ends 
in a /. By looking at dovecot's home_expand code I discovered this is 
not checked while expanding ~/.dovecot.sieve. However, linux/unix/POSIX 
(?) seems to be handling duplicate slashes as single ones, so it should 
work properly anyhow. But, maybe Timo is interested in making some 
cosmetic changes. :)

<snap>protocol transcript</snap>
> S: PUTSCRIPT "phpscript" {777+}\r\n# This script has been automatically
> generated by avelsieve\n# (Sieve Mail Filters Plugin for
> Squirrelmail)\n# Warning: If you edit this manually, then the changes
> will not \n# be reflected in the users'
> front-end\!\n#AVELSIEVE_VERSIONYTo0OntzOjU6Im1ham9yIjtpOjE7czo1OiJtaW5vciI7aTo5O3M6NzoicmVsZWFzZSI7aTo3O3M6Njoic3RyaW5nIjtzOjU6IjEuOS43Ijt9\n#AVELSIEVE_CREATED1176087308\n#AVELSIEVE_MODIFIED1176087308\nrequire
> [""];\nif\n#START_SIEVE_RULEYTo0OntzOjQ6ImNvbmQiO2E6MTp7aTowO2E6NDp7czo0OiJ0eXBlIjtzOjY6ImhlYWRlciI7czo2OiJoZWFkZXIiO3M6NjoidG9vcmNjIjtzOjk6Im1hdGNodHlwZSI7czo4OiJjb250YWlucyI7czoxMToiaGVhZGVybWF0Y2giO3M6MzoiKioqIjt9fXM6NDoidHlwZSI7czoxOiIxIjtzOjk6ImNvbmRpdGlvbiI7czozOiJhbmQiO3M6NjoiYWN0aW9uIjtzOjE6IjIiO30%3DEND_SIEVE_RULE\nheader
> :contains ["to", "cc"] "***"\n{\ndiscard;\n}\r\n
> C: "IMPLEMENTATION" "dovecot"\r\n
> C: "SIEVE" "FILEINTO REJECT ENVELOPE VACATION IMAPFLAGS NOTIFY
> SUBADDRESS RELATIONAL COMPARATOR-I;ASCII-NUMERIC"\r\n
> C: OK "Capability completed."\r\n
> S: SETACTIVE "phpscript"\r\n
> C: NO "line 8: Unsupported features in require line"\r\n
This script states:
require [""];

This is not valid sieve to my knowledge and it doesn't serve any useful 
purpose: there is no empty sieve extension, so this seems to be a bug in 
avelsieve. Lib-CMUSieve correctly reports an error.

Btw, I tested avelsieve myself as well (to test yet another sieve 
client), but it also caused a syntax error:

NO "line 6: syntax error, unexpected ']', expecting STRING"

I don't yet know what caused this, but I intend to find out as soon as I 
get to sniff the TCP communication properly.

About the configuration: I will add a small configuration section to the 
README file. Just like the first version, it is still configured as any 
other mail protocol and it does not have any special configuration 
options (apart from the freshly added managesieve_implementation_string 
option). Simply adding managesieve to the 'protocols' line in 
dovecot.conf is usually enough, but it also accepts the other common 
options like 'listen' (to make the deamon listen on a different port for 
instance).

Regards,

-- 
Stephan Bosch
stephan at rename-it.nl
IRC: Freenode, #dovecot, S[r]us









More information about the dovecot mailing list