This requirement applies to the LTMP DATA command when more than a single
recipient is approved.
This caused a crash in the LMTP service occurring when the proxy client
connection was lost during the DATA command while more than a single RCPT
command was expected earlier. This situation caused an early free/dangling
pointer for the DATA command struct, subsequently causing a crash at
deinitialization of the proxy.
}
e_debug(e->event(), "Failed: %s", smtp_reply_log(reply));
- if (callback != NULL)
- (void)callback(reply, context);
+ if (callback != NULL) {
+ while (cmd->replies_seen++ < cmd->replies_expected)
+ (void)callback(reply, context);
+ }
}
tmp_cmd = cmd;