Bug #8741
Updated by Jason Ish 20 days ago
Found via an AI review array of the SMTP work after merge, appears to be valid. The SMTP parser extracts the BDAT length but does not retain the LAST marker. Consequently, the final chunk and reply do not complete the transaction. A subsequent MAIL FROM can be merged into the previous transaction, retaining its envelope and firewall state. Related issues: * BDAT 0 LAST incorrectly enters data mode. * The chunk index is not reset for each BDAT. * Input is not consumed strictly to the declared octet boundary. Track LAST, reset accounting per chunk, consume the exact chunk length, and complete both transaction directions at the final chunk/reply. Add coverage for non-empty LAST, zero-length LAST, and multiple chunks followed by a new message. Related to #8393.