Code

check_smtp: Abort on missing/unexpected greeting
authorHolger Weiss <holger@zedat.fu-berlin.de>
Tue, 8 Feb 2011 16:07:52 +0000 (17:07 +0100)
committerHolger Weiss <holger@zedat.fu-berlin.de>
Tue, 8 Feb 2011 16:07:52 +0000 (17:07 +0100)
Abort immediately if we don't receive a server greeting or if the
greeting doesn't contain the "--expect"ed string (by default: "220")
instead of blindly sending the EHLO/HELO line.

Spotted by Daniel Piddock, see Debian bug report #611914.

plugins/check_smtp.c

index 3da724babdc32dc6313eed310db233a34213281b..ed491638993cdb0598e0c8d1c7b9c74dad492e76 100644 (file)
@@ -183,7 +183,7 @@ main (int argc, char **argv)
                /* return a WARNING status if we couldn't read any data */
                if (recvlines(buffer, MAX_INPUT_BUFFER) <= 0) {
                        printf (_("recv() failed\n"));
-                       result = STATE_WARNING;
+                       return STATE_WARNING;
                }
                else {
                        if (verbose)
@@ -197,7 +197,7 @@ main (int argc, char **argv)
                                else
                                        printf (_("Invalid SMTP response received from host on port %d: %s\n"),
                                                                        server_port, buffer);
-                               result = STATE_WARNING;
+                               return STATE_WARNING;
                        }
                }