test for and return earlier when a null sender is encountered.
Prevents using an undefined variable.
---
plugins/sender_permitted_from |   11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/plugins/sender_permitted_from b/plugins/sender_permitted_from
index 816ee20..4204b93 100644
--- a/plugins/sender_permitted_from
+++ b/plugins/sender_permitted_from
@@ -48,15 +48,14 @@ sub hook_mail {
    my ($self, $transaction, $sender, %param) = @_;

    my $format    = $sender->format;
-    my $host      = lc $sender->host;
-    my $user      = $sender->user;
+    return (DECLINED, "SPF - null sender") if $format eq '<>';
+    return (DECLINED, "SPF - null sender")
+        unless ($sender->host && $sender->user);
+
    my $client_ip = $self->qp->connection->remote_ip;
-    my $from      = $sender->user . '@' . $host;
+    my $from      = $sender->user . '@' . lc($sender->host);
    my $helo      = $self->qp->connection->hello_host;

-    return (DECLINED, "SPF - null sender")
-      unless ($format ne "<>" && $host && $user);
-
    # If we are receving from a relay permitted host, then we are probably
    # not the delivery system, and so we shouldn't check
    return (DECLINED, "SPF - relaying permitted")
-- 
1.7.9.4


Reply via email to