It did not handle LMTP DATA/BDAT command correctly, for which there can be multiple replies.
This fixes mixing local/remote recipients in LMTP, which used to crash:
Panic: file smtp-server-connection.c: line 610 (smtp_server_connection_next_reply): assertion failed: (cmd->state == SMTP_SERVER_COMMAND_STATE_READY_TO_REPLY && smtp_server_command_is_replied(cmd))
}
i_assert(cmd->state == SMTP_SERVER_COMMAND_STATE_READY_TO_REPLY &&
- smtp_server_command_is_replied(cmd));
+ array_is_created(&cmd->replies));
smtp_server_command_completed(cmd);
for (i = 0; i < cmd->replies_expected; i++) {
struct smtp_server_reply *reply;
- if (!array_is_created(&cmd->replies))
- break;
reply = array_idx_modifiable(&cmd->replies, i);
if (!reply->submitted) {