commit 21115d4a1befb0b9fd139aaa47a2f22efb0f6ba4
Author: Quentin Rameau <[email protected]>
AuthorDate: Thu Jul 13 19:05:21 2017 +0200
Commit: Laslo Hunhold <[email protected]>
CommitDate: Thu Jul 13 21:11:06 2017 +0200
Fix logic error in vhost chrooting (from e592bbc)
Thanks Hiltjo for having spotted it!
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;
}
}
}