diff --git a/apps/s_server.c b/apps/s_server.c index f8e44ce43e095866da6cb4cb493596594b917372..4223d2db1e4676c9cb095856e5432428fbace94c 100644 --- a/apps/s_server.c +++ b/apps/s_server.c @@ -1436,9 +1436,6 @@ static int www_body(char *hostname, int s, unsigned char *context) switch (dot) { - case 0: - dot = (e[0] == '/') ? 1 : 0; - break; case 1: dot = (e[0] == '.') ? 2 : 0; break; @@ -1449,6 +1446,8 @@ static int www_body(char *hostname, int s, unsigned char *context) dot = (e[0] == '/') ? -1 : 0; break; } + if (dot == 0) + dot = (e[0] == '/') ? 1 : 0; } dot = (dot == 3) || (dot == -1); /* filename contains ".." component */