From 946fb6c1f90cbb7bc71a52b049e20f0872bdc4f0 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 15 Sep 2020 06:11:18 +0000 Subject: imap: quiet uninitialized variable warning on FETCH This was triggered by blindly trying to FETCH an MSN (not "UID FETCH") on an empty dummy inbox. It's harmless, and probably triggered by a wayward client or misbehaving bot. --- lib/PublicInbox/IMAP.pm | 2 +- t/imapd.t | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/PublicInbox/IMAP.pm b/lib/PublicInbox/IMAP.pm index 2d0d005e..47c08aea 100644 --- a/lib/PublicInbox/IMAP.pm +++ b/lib/PublicInbox/IMAP.pm @@ -300,7 +300,7 @@ sub msn2uid ($) { # converts a set of message sequence numbers in requests to UIDs: sub msn_to_uid_range ($$) { my $msn2uid = $_[0]; - $_[1] =~ s!([0-9]+)!$msn2uid->[$1 - 1] // ($msn2uid->[-1] + 1)!sge; + $_[1] =~ s!([0-9]+)!$msn2uid->[$1 - 1] // ($msn2uid->[-1] // 0 + 1)!sge; } # called by PublicInbox::InboxIdle diff --git a/t/imapd.t b/t/imapd.t index cb95fa5d..c1c52839 100644 --- a/t/imapd.t +++ b/t/imapd.t @@ -371,6 +371,10 @@ EOF @hits = $mic->search('SENTSINCE' => '18-Apr-2020'); is_deeply(\@hits, [], 'search on dummy with condition works'); ok(!$mic->search('SENTSINCE' => '18-Abr-2020'), 'bad month fails'); + $mic->Uid(0); + my $ret = $mic->fetch_hash(2, 'RFC822'); + is_deeply($ret, {}, + 'MSN FETCH on empty dummy will not trigger warnings, later'); }); # each_inbox # message sequence numbers :< -- cgit v1.2.3-24-ge0c7