[Nagiosplug-devel] check_tcp bug

Russell Scibetti russell at quadrix.com
Wed Dec 18 16:21:06 CET 2002


I've noticed two small problems with the check_tcp plugin (nagiosplug 
1.3b2) that prevent it from doing its proper default expect string 
checking (i.e - if you are running check_smtp, by default you expect a 
"220" return, etc).

First, the expect value for check_pop (and check_spop) is incorrect. 
 The expect is set to "110", which is just the port for POP.  This never 
actually gets returned when to do a tcp connect to POP.  What you need 
to get back to know that POP is working is "+OK".

Secondly, there is a bug in that, unless the user gives uses the -e 
argument, none of the default expects will every be checked.  Here is a 
piece of the check_tcp code:

  /* use default expect if none listed in process_arguments() */
  if (EXPECT && server_expect_count == 0) {
!          server_expect = malloc (1);
           server_expect[server_expect_count - 1] = EXPECT;
  }

Well, unless you are doing a check_nntp or the user gave a -e <string>, 
the value of server_expect_count going into this is 0.  So 
server_expect[-1] is being stored and server_expect_count doesn't get 
set to 1 anywhere.  So later, when the code decides if it needs to check 
against any expect strings, it sees that server_expect_count = 0, and 
doesn't do any comparisons.

The way around this is:

  /* use default expect if none listed in process_arguments() */
  if (EXPECT && server_expect_count == 0) {
!          server_expect = malloc (++server_expect_count);
           server_expect[server_expect_count - 1] = EXPECT;
  }

Now, server_expect_count is increased to 1 and the value is stored in 
server_expect[0].  This will actually make check_tcp check the default 
expect values.  If you compare, this looks just like the section of code 
where you set a user-defined expect string.

I have included a context diff that can be used as a patch.  If you have 
any questions, just email me back.  Thanks.

-Russell Scibetti

-- 
Russell Scibetti
Quadrix Solutions, Inc.
http://www.quadrix.com
(732) 235-2335, ext. 7038

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: checktcp-diff.patch
URL: <https://www.monitoring-plugins.org/archive/devel/attachments/20021218/62a568c2/attachment.ksh>


More information about the Devel mailing list