check_mysql: Fix segfault with old slaves (#2696823 - Oskar Ahner)

This commit is contained in:
Thomas Guyot-Sionnest 2009-03-24 02:01:48 -04:00
parent f2f2f35240
commit ab3ada9aac
3 changed files with 4 additions and 1 deletions

1
NEWS
View file

@ -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)

View file

@ -248,3 +248,4 @@ Nik Soggia
Olli Hauer
Richard Edward Horner
John Barbuto
Oskar Ahner

View file

@ -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);