From b4a2d5e19a06225fd5b07632354314bc8d35a2d6 Mon Sep 17 00:00:00 2001 From: Olivier Houchard Date: Tue, 4 Apr 2017 22:10:36 +0200 Subject: [PATCH] MINOR server: Restrict dynamic cookie check to the same proxy. Each time we generate a dynamic cookie, we try to make sure the same cookie hasn't been generated for another server, it's very unlikely, but it may happen. We only have to check that for the servers in the same proxy, no, need to check in others, plus the code was buggy and would always check in the first proxy of the proxy list. --- src/server.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/server.c b/src/server.c index 23343d86f..6070de93c 100644 --- a/src/server.c +++ b/src/server.c @@ -135,18 +135,17 @@ void srv_set_dyncookie(struct server *s) * Check that we did not get a hash collision. * Unlikely, but it can happen. */ - for (p = proxy; p != NULL; p = p->next) - for (tmpserv = proxy->srv; tmpserv != NULL; - tmpserv = tmpserv->next) { - if (tmpserv == s) - continue; - if (tmpserv->cookie && - strcmp(tmpserv->cookie, s->cookie) == 0) { - Warning("We generated two equal cookies for two different servers.\n" - "Please change the secret key for '%s'.\n", - s->proxy->id); - } + for (tmpserv = p->srv; tmpserv != NULL; + tmpserv = tmpserv->next) { + if (tmpserv == s) + continue; + if (tmpserv->cookie && + strcmp(tmpserv->cookie, s->cookie) == 0) { + Warning("We generated two equal cookies for two different servers.\n" + "Please change the secret key for '%s'.\n", + s->proxy->id); } + } } /*