summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--RELNOTES4
-rw-r--r--server/failover.c5
2 files changed, 7 insertions, 2 deletions
diff --git a/RELNOTES b/RELNOTES
index 327c7fec..0db7021a 100644
--- a/RELNOTES
+++ b/RELNOTES
@@ -103,6 +103,10 @@ the README file.
supported. Note that, similarly to 3.0.x, for by-code lookups only the
last option definition is used.
+- Fixed a bug where a time difference of greater than 60 seconds between a
+ failover pair could cause the primary to crash on contact with the
+ secondary. Thanks to a patch from Steinar Haug.
+
Changes since 3.1.2rc1
- None.
diff --git a/server/failover.c b/server/failover.c
index 0f7eb42c..c830c894 100644
--- a/server/failover.c
+++ b/server/failover.c
@@ -34,7 +34,7 @@
#ifndef lint
static char copyright[] =
-"$Id: failover.c,v 1.63.56.22 2009/05/21 00:06:36 dhankins Exp $ Copyright (c) 2004-2008 Internet Systems Consortium. All rights reserved.\n";
+"$Id: failover.c,v 1.63.56.23 2009/07/16 19:51:34 pselkirk Exp $ Copyright (c) 2004-2008 Internet Systems Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
@@ -594,7 +594,8 @@ isc_result_t dhcp_failover_link_signal (omapi_object_t *h,
omapi_signal ((omapi_object_t *)link -> state_object,
"message", link);
link -> state = dhcp_flink_message_length_wait;
- failover_message_dereference (&link -> imsg, MDL);
+ if (link -> imsg)
+ failover_message_dereference (&link -> imsg, MDL);
/* XXX This is dangerous because we could get into a tight
XXX loop reading input without servicing any other stuff.
XXX There needs to be a way to relinquish control but