From 4ae7b7ea691497b76b564f42a1974c202bfe368f Mon Sep 17 00:00:00 2001 From: Steve Holme Date: Wed, 28 Aug 2013 18:56:19 +0100 Subject: [PATCH] ftpserver.pl: Added SELECT check to IMAP SEARCH command --- tests/ftpserver.pl | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl index d5ae6bb..2732b16 100755 --- a/tests/ftpserver.pl +++ b/tests/ftpserver.pl @@ -1034,27 +1034,32 @@ sub STATUS_imap { sub SEARCH_imap { my ($what) = @_; - my $testno = $selected; fix_imap_params($what); - logmsg "SEARCH_imap got test $testno\n"; + if ($selected eq "") { + sendcontrol "$cmdid BAD Command received in Invalid state\r\n"; + else { + my $testno = $selected; - $testno =~ s/^([^0-9]*)//; - my $testpart = ""; - if ($testno > 10000) { - $testpart = $testno % 10000; - $testno = int($testno / 10000); - } + logmsg "SEARCH_imap got test $testno\n"; - loadtest("$srcdir/data/test$testno"); + $testno =~ s/^([^0-9]*)//; + my $testpart = ""; + if ($testno > 10000) { + $testpart = $testno % 10000; + $testno = int($testno / 10000); + } - my @data = getpart("reply", "data$testpart"); + loadtest("$srcdir/data/test$testno"); - for my $d (@data) { - sendcontrol $d; - } + my @data = getpart("reply", "data$testpart"); - sendcontrol "$cmdid OK SEARCH completed\r\n"; + for my $d (@data) { + sendcontrol $d; + } + + sendcontrol "$cmdid OK SEARCH completed\r\n"; + } return 0; } -- 2.7.4