diff --git a/modules/routing/readconnroute.c b/modules/routing/readconnroute.c index acf9e1ef9..a7b4a45ab 100644 --- a/modules/routing/readconnroute.c +++ b/modules/routing/readconnroute.c @@ -210,7 +210,13 @@ int i; * connection in the client->dcb */ - client->dcb = dcb_connect(candidate->server, session, candidate->server->protocol); + if ((client->dcb = dcb_connect(candidate->server, session, + candidate->server->protocol)) == NULL) + { + atomic_add(&candidate->count, -1); + free(client); + return NULL; + } /* Add this session to the list of active sessions */ spinlock_acquire(&inst->lock);