imap4flags extension for 2.4 branch

Deniss cyrus at sad.lv
Wed Oct 29 10:36:37 EDT 2014


James,

please look at backtrace:

Program terminated with signal 11, Segmentation fault.
#0  append_fromstage (as=as at entry=0x3dfb16f2070, body=0x3dfb16f2a10,
stage=stage at entry=0x46586c0, internaldate=internaldate at entry=0,
flags=flags at entry=0x0, nolink=0) at append.c:468
468         for (i = 0; i < flags->count ; i++) {

looks like the problem is in append.c:468 where flags iterated but is
not initialized ?

any sieve runtime error (Fileinto: Mailbox does not exist, Include can
not load script, etc) causes segfault of lmtpd

Tested on on 2.4 master + patches from your imap4flags-2.4 branch

Best,
Deniss

On 2014.10.29. 13:43, James Cassell wrote:
> Deniss,
> 
> I don't know.  My guess is that it is an error in the other patches I
> backported from master to 2.4.  What version are you using?  2.4.17
> stable?  Maybe someone on the cyrus-devel list might have an idea.
> 
> Next week, I might try to backport my patches without requiring the
> other patches I (perhaps erroneously) backported.
> 
> V/r,
> James Cassell
> 
> 
> On Tue, Oct 28, 2014, at 11:52 AM, Deniss wrote:
>> James,
>>
>> i testing your patch and have segfaults when sieve cant be include (the
>> file is missed):
>>
>> Oct 28 17:43:06 lv-test-2 lmtp[14400]: IOERROR: fstating sieve script
>> /var/imap/sieve/global/special-folders.bc: No such file or directory
>> Oct 28 17:43:06 lv-test-2 lmtp[14400]: sieve runtime error for testdev33
>> id <544FB87D.60803 at adsfasdfasd>: Include can not load script
>> Oct 28 17:43:06 lv-test-2 lmtp[14443]: executed
>> Oct 28 17:43:06 lv-test-2 kernel: lmtpd[14400]: segfault at 0 ip
>> 0000002923bc2a41 sp 000003b91dfeddb0 error 4 in lmtpd[2923ba9000+16f000]
>> Oct 28 17:43:06 lv-test-2 kernel: grsec: From 10.0.1.74: Segmentation
>> fault occurred at            (nil) in /C3/cyrus/bin/lmtpd[lmtpd:14400]
>> uid/euid:999/999 gid/egid:12/12, parent
>> /C3/cyrus/bin/master[master:14372] uid/euid:999/999 gid/egid:12/12
>> Oct 28 17:43:06 lv-test-2 kernel: grsec: From 10.0.1.74: denied resource
>> overstep by requesting 4096 for RLIMIT_CORE against limit 0 for
>> /C3/cyrus/bin/lmtpd[lmtpd:14400] uid/euid:999/999 gid/egid:12/12, parent
>> /C3/cyrus/bin/master[master:14372] uid/euid:999/999 gid/egid:12/12
>>
>>
>> without the patch sieve just ignore the file without segfaulting lmtpd.
>>
>>
>> Best,
>> Deniss
>>
>> On 2014.10.26. 10:41, James Cassell wrote:
>>> Hello Denniss,
>>>
>>> I have backported imap4flags to 2.4.17.  I backported 6 other patches to
>>> make backporting imap4flags easier.  There has been no code review of
>>> these patch backports.
>>>
>>> The code is available here:
>>> https://github.com/cyberpear/cyrus-imapd/commits/imap4flags-2.4
>>>
>>> I tried to make sure the bytecode generated on 2.4 would be readable by
>>> 2.5, though not the other way around.  I haven't tested this yet.
>>>
>>> I'd appreciate any reviews of the backported code.
>>>
>>> I'll probably send a pull request in a week or so for this code.
>>>
>>> V/r,
>>> James Cassell
>>>
>>>
>>> On Sat, Oct 25, 2014, at 10:40 AM, Deniss wrote:
>>>> hello James,
>>>>
>>>> thanks for implementing imap4flags sieve extension.
>>>> I'm looking to use the extension in production-ready 2.4 branch - 
>>>> "hasflag" test allows to add some logic while the "variables" extension 
>>>> is missed from cyrus.
>>>> Are there any caveats to backport imap4flags from master to 2.4 ?
>>>>
>>>> Best,
>>>> Deniss


More information about the Cyrus-devel mailing list