From 6995b77a52dc1fa9ed05567a52aa68142a57106c Mon Sep 17 00:00:00 2001 From: Steve Holme Date: Mon, 10 Feb 2020 20:49:45 +0000 Subject: ftpserver: Updated VRFY_smtp() so the response isn't necessary in the test case --- tests/data/test923 | 3 --- tests/ftpserver.pl | 18 +++++++++++++++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/tests/data/test923 b/tests/data/test923 index cb811bb0e..9d9722f9a 100644 --- a/tests/data/test923 +++ b/tests/data/test923 @@ -9,9 +9,6 @@ VRFY # # Server-side - -250 - # diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl index e815619d6..6709769d7 100755 --- a/tests/ftpserver.pl +++ b/tests/ftpserver.pl @@ -1030,10 +1030,22 @@ sub VRFY_smtp { sendcontrol "501 Unrecognized parameter\r\n"; } else { - my @data = getreplydata($smtp_client); + # Validate the username (only a valid local or external username is + # allowed, such as user or user@example.com) + if ($username !~ + /^([a-zA-Z0-9._%+-]+)(\@(([a-zA-Z0-9-]+)\.)+([a-zA-Z]{2,4}))?$/) { + sendcontrol "501 Invalid address\r\n"; + } + else { + my @data = getreplydata($smtp_client); - for my $d (@data) { - sendcontrol $d; + if(!@data) { + push @data, "250 <$username\@example.com>\r\n" + } + + for my $d (@data) { + sendcontrol $d; + } } } -- cgit v1.2.1