On 8/27/2014 4:08 PM, Jeremy Laidman wrote:
On 28 August 2014 05:10, John Thurston <john.thurston at alaska.gov <mailto:john.thurston at alaska.gov>> wrote:
And I think the thing which ran off the end of the string was the debug process :p I'm still looking at source (and my C is very, very bad), but I suspect the debug print process is choking on the absence of an attribute in the procols.cfgThe "Sendtext" line has only the date string, so that's probably the data that caused the crash. I'm guessing you haven't re-defined the protocols.cfg entry for [telnet], so I'm struggling to imagine where the bad data could have come from. But perhaps worth removing the "telnet" test for that host and see if the crashing stops.
The telnet test is defined for only one host (out of 600) in my hosts.cfg, and it is never the host identified in the remnants of the crash.
It looks like (with 4.3.17), in debug mode, lines 324-340 of netservices.c dump the currently defined service list. They correctly send the contents of the service list for: ftp ftps ssh ssh1 ssh2 and they print the name for: telent and then they die when they are asked to print the Sendtext for "telnet"
My protocols.cfg contains:
[ssh|ssh1|ssh2] send "SSH-2.0-OpenSSH_4.1\r\n" expect "SSH" options banner port 22
[telnet] options banner,telnet port 23
There is no "send" attribute defined. I don't think there has ever been such an attribute defined. The files in the source directories (~/xymon-4.3.17/xymonnet/protocols.cfg) do not contain a "send" attribute. The "send" attribute is defined for most, but not all of the other protocols in the file.
Has anyone running 4.3.17 successfully run their rrd_data handler in debug mode? I don't think it can do it.
This looks to me like a code defect, wherein the dump_tcp_services function is not checking for a null string prior to finding its length and passing the information to dbgprintf. I'm just a lowly sysadmin whose last exposure to C was more than 25 years ago. Can someone with some C experience confirm or deny my hypothesis?
-- Do things because you should, not just because you can.
John Thurston 907-465-8591 John.Thurston at alaska.gov Enterprise Technology Services Department of Administration State of Alaska