summaryrefslogtreecommitdiffstats
path: root/plugins-root
diff options
context:
space:
mode:
authorSebastian Harl <sh@teamix.net>2011-04-28 07:18:21 (GMT)
committerThomas Guyot-Sionnest <dermoth@aei.ca>2011-04-29 00:42:53 (GMT)
commit5ebe25fc24d33cf2d7b46fce9e746a58e0115010 (patch)
tree25b36b76141d4253d56e58c158a1e6c1c32573ee /plugins-root
parent1bc7a4a198aefde2389c9c1685baed0da7856bf5 (diff)
downloadmonitoring-plugins-5ebe25fc24d33cf2d7b46fce9e746a58e0115010.tar.gz
check_host: Allocate a large-enough buffer for the host table.
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.
Diffstat (limited to 'plugins-root')
-rw-r--r--plugins-root/check_icmp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/plugins-root/check_icmp.c b/plugins-root/check_icmp.c
index 6d8ba09..fe8fc56 100644
--- a/plugins-root/check_icmp.c
+++ b/plugins-root/check_icmp.c
@@ -621,7 +621,7 @@ main(int argc, char **argv)
621 } 621 }
622 622
623 host = list; 623 host = list;
624 table = malloc(sizeof(struct rta_host **) * (argc - 1)); 624 table = malloc(sizeof(struct rta_host **) * targets);
625 i = 0; 625 i = 0;
626 while(host) { 626 while(host) {
627 host->id = i*packets; 627 host->id = i*packets;