summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2011-03-07 10:52:19 +0100
committerStephen Gallagher <sgallagh@redhat.com>2011-03-07 10:56:03 -0500
commitbcf6d695c7df37bf5b0847d0c6c19d709ba4cf36 (patch)
treecb9a95cab86d4fcb374ae9079fef2e2d6c20440c
parent335ddc0d500b5feca933046da05d88a5b12e3525 (diff)
downloadsssd-bcf6d695c7df37bf5b0847d0c6c19d709ba4cf36.tar.gz
sssd-bcf6d695c7df37bf5b0847d0c6c19d709ba4cf36.tar.xz
sssd-bcf6d695c7df37bf5b0847d0c6c19d709ba4cf36.zip
Prevent segfault in failover code
-rw-r--r--src/providers/fail_over.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/providers/fail_over.c b/src/providers/fail_over.c
index a09a409d4..37ffe268f 100644
--- a/src/providers/fail_over.c
+++ b/src/providers/fail_over.c
@@ -312,7 +312,7 @@ get_server_status(struct fo_server *server)
time_t timeout;
if (server->common == NULL)
- return SERVER_NAME_RESOLVED;
+ return SERVER_NAME_NOT_RESOLVED;
DEBUG(7, ("Status of server '%s' is '%s'\n", SERVER_NAME(server),
str_server_status(server->common->server_status)));
@@ -353,7 +353,8 @@ get_port_status(struct fo_server *server)
server->port_status = PORT_NEUTRAL;
server->last_status_change.tv_sec = tv.tv_sec;
- if (STATUS_DIFF(server->common, tv) > HOSTNAME_RESOLVE_TIMEOUT) {
+ if (server->common != NULL &&
+ STATUS_DIFF(server->common, tv) > HOSTNAME_RESOLVE_TIMEOUT) {
DEBUG(4, ("Reseting the server status of '%s'\n",
SERVER_NAME(server)));
fo_set_server_status(server, SERVER_NAME_NOT_RESOLVED);