From 21115d4a1befb0b9fd139aaa47a2f22efb0f6ba4 Mon Sep 17 00:00:00 2001 From: Quentin Rameau Date: Thu, 13 Jul 2017 19:05:21 +0200 Subject: [PATCH] Fix logic error in vhost chrooting (from e592bbc) Thanks Hiltjo for having spotted it! --- quark.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/quark.c b/quark.c index 755b94d..14044ae 100644 --- a/quark.c +++ b/quark.c @@ -568,9 +568,12 @@ sendresponse(int fd, struct request *r) for (i = 0; i < LEN(vhost); i++) { /* switch to vhost directory if there is a match */ if (!regexec(&vhost[i].re, r->field[REQ_HOST], 0, - NULL, 0) && chdir(vhost[i].dir) < 0) { - return sendstatus(fd, (errno == EACCES) ? - S_FORBIDDEN : S_NOT_FOUND); + NULL, 0) { + if (chdir(vhost[i].dir) < 0) { + return sendstatus(fd, (errno == EACCES) + ? S_FORBIDDEN : S_NOT_FOUND); + } + break; } } }