Commit 5d3ab9b0 authored by Bodo Möller's avatar Bodo Möller
Browse files

For -WWW, fix test for ".." directory references (and avoid warning for

index -1).
parent 4fea8145
Loading
Loading
Loading
Loading
+22 −8
Original line number Diff line number Diff line
@@ -1423,20 +1423,34 @@ static int www_body(char *hostname, int s, unsigned char *context)
			{
			BIO *file;
			char *p,*e;
			static char *text="HTTP/1.0 200 ok\r\n"
                                "Content-type: text/plain\r\n\r\n";
			static char *text="HTTP/1.0 200 ok\r\nContent-type: text/plain\r\n\r\n";

			/* skip the '/' */
			p= &(buf[5]);
			dot=0;

			dot = 1;
			for (e=p; *e != '\0'; e++)
				{
				if (e[0] == ' ') break;
				if (	(e[0] == '.') &&
					(strncmp(&(e[-1]),"/../",4) == 0))
					dot=1;
				}
				if (e[0] == ' ')
					break;

				switch (dot)
					{
				case 0:
					dot = (e[0] == '/') ? 1 : 0;
					break;
				case 1:
					dot = (e[0] == '.') ? 2 : 0;
					break;
				case 2:
					dot = (e[0] == '.') ? 3 : 0;
					break;
				case 3:
					dot = (e[0] == '/') ? -1 : 0;
					break;
					}
				}
			dot = (dot == 3) || (dot == -1); /* filename contains ".." component */

			if (*e == '\0')
				{