aboutsummaryrefslogtreecommitdiffstats
path: root/interimap
diff options
context:
space:
mode:
Diffstat (limited to 'interimap')
-rwxr-xr-xinterimap5
1 files changed, 4 insertions, 1 deletions
diff --git a/interimap b/interimap
index 386492e..f9be72d 100755
--- a/interimap
+++ b/interimap
@@ -1154,8 +1154,11 @@ sub callback_new_message($$$$;$$$) {
my ($idx, $mailbox, $name, $mail, $UIDs, $buff, $bufflen) = @_;
return unless exists $mail->{RFC822}; # not for us
- my $length = length ${$mail->{RFC822}};
+ my $length = length(${$mail->{RFC822}} // "");
if ($length == 0) {
+ # the RFC822 attribute can be NIL or empty (it's an nstring), however
+ # NIL can't be used in APPEND commands, and RFC 3502 sec. 6.3.11
+ # explicitly forbids zero-length messages, so we ignore these here
msg2($name => $mailbox, "WARNING: Ignoring new 0-length message (UID $mail->{UID})");
return;
}