lmtpd segfaults after update to 2.4.19, seems it wants to act as proxy

Simon Matter simon.matter at invoca.ch
Mon May 22 01:55:14 EDT 2017


> On Sat, May 20, 2017, at 05:59 PM, Simon Matter wrote:
>> > This is the point where the wrong path is taken.
>> >
>> >
>> > r = mlookup(namebuf, &server, NULL, NULL);
>> > if (!r && server) {
>> >      /* remote mailbox */
>> >      proxy_adddest(&dlist, rcpt, n, server, authuser);
>> >      status[n] = nosieve;
>> > }
>> >
>> > mlookup did return something that is not 0, and server has not been
>> set
>> > in mlookup. In 2.4.17 there has was "if (server) *server = NULL;"
>>
>> Hi Michael,
>>
>> Thanks a lot for pointing me into the right direction. Indeed attached
>> patch makes it work for me.
>>
>> I don't know if this is the proper fix for the issue. Hopefully someone
>> who knows better than me can comment.
>>
>> Regards,
>> Simon
>
> Hi,
>
> Thanks Simon and Michael for the sleuthing!
>
> I've attached what I think is a better patch -- it makes sure the server
> variable is correctly initialised to NULL, and mlookup() keeps the
> idiomatic implementation whereby it only touches the output variable if
> it succeeds.
>
> Are you able to confirm if this patch also fixes the issue for you?  I
> don't have a 2.4 environment to test this on

Hi Ellie,

Thanks for looking into it.

Unfortunately with your new version of the patch I only get this:

lmtpunix[23046]: FATAL: Internal error: assertion failed: append.c: 368:
stage != NULL && stage->parts[0] != '\0'

Regards,
Simon



More information about the Info-cyrus mailing list