Hi Deniss,

Thanks for the feedback.

It turns out that it was a bug I introduced when I implemented
imap4flags originally.  I believe I have fixed the issue.  Could you
test the patch I've added to the same branch?

https://github.com/cyberpear/cyrus-imapd/commits/imap4flags-2.4

If all is working after some testing, I'll push it to master as well.

V/r,
James Cassell


On Tue, Nov 4, 2014, at 08:43 AM, Deniss wrote:
> James,
> 
> I got another issue trying to migrate from current cyrus installation
> (cyrus-2.4.17) to new one with imap4flags extension: bytecode is not
> compatible with old compiled - "sieve runtime error: Invalid sieve
> bytecode"
> 
> This happens when "fileinto" was used in compiled with cyrus-2.4.17
> sieve script. Any other sieve target looks to work just fine.
> 
> Best,
>   Deniss
> 
> On 2014.10.31. 6:16, James Cassell wrote:
> > Deniss,
> > 
> > I believe I have found and fixed the issue.  There are two new commits
> > on that branch.  Can you test it?
> > 
> > Thanks.
> > 
> > V/r,
> > James Cassell
> > 
> > 
> > On Wed, Oct 29, 2014, at 10:36 AM, Deniss wrote:
> >> James,
> >>
> >> please look at backtrace:
> >>
> >> Program terminated with signal 11, Segmentation fault.
> >> #0  append_fromstage (as=as@entry=0x3dfb16f2070, body=0x3dfb16f2a10,
> >> stage=stage@entry=0x46586c0, internaldate=internaldate@entry=0,
> >> flags=flags@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@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

Reply via email to