aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Thomas Guyot-Sionnest <dermoth@aei.ca> 2009-03-24 02:01:48 -0400
committerGravatar Thomas Guyot-Sionnest <dermoth@aei.ca> 2009-03-24 02:01:48 -0400
commitab3ada9aacd82356a6e5205f3ae26bbff55524db (patch)
treec80b7aee657b34d8f018c94cac45ece1507f4c26
parentf2f2f35240c976ddc6e44cd6276df88aad812199 (diff)
downloadmonitoring-plugins-ab3ada9aacd82356a6e5205f3ae26bbff55524db.tar.gz
check_mysql: Fix segfault with old slaves (#2696823 - Oskar Ahner)
-rw-r--r--NEWS1
-rw-r--r--THANKS.in1
-rw-r--r--plugins/check_mysql.c3
3 files changed, 4 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 164ef9fa..4f3a833e 100644
--- a/NEWS
+++ b/NEWS
@@ -28,6 +28,7 @@ This file documents the major additions and syntax changes between releases.
Fixed check_http not timing-out on redirects
Fixed negate not printing the real timeout in ALRM handler when left to default
negate timeout result is now configurable
+ Fixed segfault in check_mysql with old slaves (#2696823 - Oskar Ahner)
1.4.13 25th Sept 2008
Fix Debian bug #460097: check_http --max-age broken (Hilko Bengen)
diff --git a/THANKS.in b/THANKS.in
index 7737e17d..30bf06c2 100644
--- a/THANKS.in
+++ b/THANKS.in
@@ -248,3 +248,4 @@ Nik Soggia
Olli Hauer
Richard Edward Horner
John Barbuto
+Oskar Ahner
diff --git a/plugins/check_mysql.c b/plugins/check_mysql.c
index 119ce0af..689648eb 100644
--- a/plugins/check_mysql.c
+++ b/plugins/check_mysql.c
@@ -177,13 +177,14 @@ main (int argc, char **argv)
continue;
}
}
+
if ((slave_io_field < 0) || (slave_sql_field < 0) || (num_fields == 0)) {
mysql_free_result (res);
mysql_close (&mysql);
die (STATE_CRITICAL, "Slave status unavailable\n");
}
- snprintf (slaveresult, SLAVERESULTSIZE, "Slave IO: %s Slave SQL: %s Seconds Behind Master: %s", row[slave_io_field], row[slave_sql_field], row[seconds_behind_field]);
+ snprintf (slaveresult, SLAVERESULTSIZE, "Slave IO: %s Slave SQL: %s Seconds Behind Master: %s", row[slave_io_field], row[slave_sql_field], seconds_behind_field!=-1?row[seconds_behind_field]:"Unknown");
if (strcmp (row[slave_io_field], "Yes") != 0 || strcmp (row[slave_sql_field], "Yes") != 0) {
mysql_free_result (res);
mysql_close (&mysql);