summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Holme <steve_holme@hotmail.com>2013-09-22 15:05:43 +0100
committerSteve Holme <steve_holme@hotmail.com>2013-09-22 15:05:43 +0100
commit8880f84e1a8f9642b883e429588e26f928711245 (patch)
tree33dae0010587110fb4efc74d3750f2e0c2072082
parent9d4a8c7936401ef76fac89d4888d26cac12e3a80 (diff)
downloadgnurl-8880f84e1a8f9642b883e429588e26f928711245.tar.gz
gnurl-8880f84e1a8f9642b883e429588e26f928711245.tar.bz2
gnurl-8880f84e1a8f9642b883e429588e26f928711245.zip
ftpserver.pl: Expanded the SMTP RCPT handler to validate TO addresses
RCPT_smtp() will now check for a correctly formatted TO address which allows for invalid recipient addresses to be added.
-rwxr-xr-xtests/ftpserver.pl11
1 files changed, 10 insertions, 1 deletions
diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl
index 588f98d5d..be2d545ba 100755
--- a/tests/ftpserver.pl
+++ b/tests/ftpserver.pl
@@ -849,13 +849,22 @@ sub RCPT_smtp {
logmsg "RCPT_smtp got $args\n";
+ # Get the TO parameter
if($args !~ /^TO:(.*)/) {
sendcontrol "501 Unrecognized parameter\r\n";
}
else {
$smtp_rcpt = $1;
- sendcontrol "250 Recipient OK\r\n";
+ # Validate the to address (only a valid email address inside <> is
+ # allowed, such as <user@example.com>)
+ if ($smtp_rcpt !~
+ /^<([a-zA-Z0-9._%+-]+)\@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})>$/) {
+ sendcontrol "501 Invalid address\r\n";
+ }
+ else {
+ sendcontrol "250 Recipient OK\r\n";
+ }
}
return 0;