Marcial Rion:
> > Yes. I need to correlate what local(8) forwards against what cleanup(8)
> > receives.
> >
> >     Wietse
> >   
> Here you go with the correlated logs (local -v and cleanup -v):
> 
> http://www.copypaste.at/276

What you have can happen only with modified Postfix code.

        Wietse

Anonymized with 
amyca.ch -> amyca.example
swissonline.ch -> swissonline.example

In deliver_resolve_tree we have:
    tok822_resolve(addr, &reply);

In tok822_resolve we have at the end:
    if (msg_verbose)
        msg_info("tok822_resolve: from=%s addr=%s -> chan=%s, host=%s, rcpt=%s",
                 sender,
                 vstring_str(intern_form), vstring_str(reply->transport),
                 vstring_str(reply->nexthop), vstring_str(reply->recipient));
    vstring_free(intern_form);
}

(note: vstring_free() etc. overwrite deallocated memory with 0xff bytes)

Output:
    Jan 30 07:26:46 amyca postfix/local[16559]: tok822_resolve:
    from= addr=am...@swissonline.example -> chan=smtp, host=smtp.hispeed.ch,
    rcpt=am...@swissonline.example

Thus, reply->recipient contains am...@swissonline.example.

Back in deliver_resolve_tree we have:
    if (reply.flags & RESOLVE_FLAG_FAIL) {
        /* not applicable. */
    } else if (reply.flags & RESOLVE_FLAG_ERROR) {
        /* not applicable. */
    } else {
        if (state.msg_attr.unmatched) {
            /* not applicable - there is no address extension */
        }
        state.msg_attr.rcpt.address = STR(reply.recipient);

Thus, state.msg_attr.rcpt.address == am...@swissonline.example.

Then we have in deliver_resolve_tree:
        if (strcmp(state.msg_attr.relay, STR(reply.transport)) == 0) {
            status = deliver_recipient(state, usr_attr);
        } else {
            status = deliver_indirect(state);

In deliver_indirect we have:
int     deliver_indirect(LOCAL_STATE state)
{
   if (msg_verbose)
        msg_info("deliver_indirect: %s", state.msg_attr.rcpt.address);

Output:
    Jan 30 07:26:46 amyca postfix/local[16559]: deliver_indirect:
    cont...@amyca.example

This can't happen unless someone has modified the source code,
which voids the warranty and ends my free support.

Reply via email to