Code

check_host: Allocate a large-enough buffer for the host table. master sh/pu
authorSebastian Harl <sh@teamix.net>
Thu, 28 Apr 2011 07:18:21 +0000 (09:18 +0200)
committerThomas Guyot-Sionnest <dermoth@aei.ca>
Fri, 29 Apr 2011 00:42:53 +0000 (20:42 -0400)
When specifying a host-name on the command line, each of its IPs is added to
the host table (and each one is pinged). So, the buffer has to be large enough
to hold all of the respective host objects. (argc - 1) only fits hosts with a
single IP.

Thanks to Max Kosmach <max@tcen.ru> for reporting this in Debian bug #623702.

NEWS
THANKS.in
plugins-root/check_icmp.c

diff --git a/NEWS b/NEWS
index fcaa9c1b45d6c4834ae0a1dbd7dc0747af0a7196..8bb0fcb2dbc42be570453c9ac11d513b36f18a7c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -14,6 +14,7 @@ This file documents the major additions and syntax changes between releases.
        Make check_snmp work more like v1.4.14 with regard to using special values (Timeticks, STRING) as numeric thresholds
        Fix check_ldap overriding the port when --ssl was specified after -p
        Fix check_procs where regex input of '|' would get displayed in output - now replaced with ','
+       Fix segfault in check_host when hostname returns multiple IP addresses (Sebastian Harl)
 
 1.4.15 27th July 2010
        ENHANCEMENTS
index cb8d26cf6419c3e9a183ce5c10e6174202b6a2d1..c6775bcdc735344fe6d3152c3453e12d37b894a8 100644 (file)
--- a/THANKS.in
+++ b/THANKS.in
@@ -268,3 +268,4 @@ Brian Landers
 Ryan Kelly
 StĂ©phane Urbanovski
 Marco Beck
+Sebastian Harl
index 6d8ba09980a141848e2c21d6441ec4c9aa1617ce..fe8fc56f81b0650600fe6bfca97d5d7a20ef54d3 100644 (file)
@@ -621,7 +621,7 @@ main(int argc, char **argv)
        }
 
        host = list;
-       table = malloc(sizeof(struct rta_host **) * (argc - 1));
+       table = malloc(sizeof(struct rta_host **) * targets);
        i = 0;
        while(host) {
                host->id = i*packets;