When sending email with attachments to SharePoint list, if one of the file attached to the email is of size 0, then none of the files will be saved and NO new item will be created in the list.
The SPEmailHandler's ProcessAttachment method should check the length of the "contentStream". If the length is 0, it should return immediately.
As you can see in the ProcessAttachment method none of the arguments are validated before they are used. This an example of poor quality code.
It should do at least
if (contentStream == null || contentStream.Length == 0) return;
if (string.IsNullOrEmpty(fileName) || item == null) return;
private static void ProcessAttachment(Stream contentStream,