aboutsummaryrefslogtreecommitdiff
path: root/plugins-root/check_icmp.c
diff options
context:
space:
mode:
authorGravatar Sebastian Harl <sh@teamix.net> 2011-04-28 09:18:21 +0200
committerGravatar Thomas Guyot-Sionnest <dermoth@aei.ca> 2011-04-28 20:42:53 -0400
commit5ebe25fc24d33cf2d7b46fce9e746a58e0115010 (patch)
tree25b36b76141d4253d56e58c158a1e6c1c32573ee /plugins-root/check_icmp.c
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/check_icmp.c')
-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 6d8ba099..fe8fc56f 100644
--- a/plugins-root/check_icmp.c
+++ b/plugins-root/check_icmp.c
@@ -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;