dgaudet 98/03/12 23:12:56
Modified: src/main http_protocol.c
Log:
Move this ugly platform specific code from parse_uri_components() into
parse_uri(). Guys this is probably something that should be done
elsewhere. Like maybe in directory_walk().
Revision Changes Path
1.196 +16 -0 apache-1.3/src/main/http_protocol.c
Index: http_protocol.c
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/main/http_protocol.c,v
retrieving revision 1.195
retrieving revision 1.196
diff -u -r1.195 -r1.196
--- http_protocol.c 1998/03/10 06:13:50 1.195
+++ http_protocol.c 1998/03/13 07:12:54 1.196
@@ -594,6 +594,22 @@
r->args = r->parsed_uri.query;
r->uri = r->parsed_uri.path ? r->parsed_uri.path
: pstrdup(r->pool, "/");
+#if defined(__EMX__) || defined(WIN32)
+ /* Handle path translations for OS/2 and plug security hole.
+ * This will prevent "http://www.wherever.com/..\..\/" from
+ * returning a directory for the root drive.
+ */
+ {
+ char *x;
+
+ for (x = r->uri; (x = strchr(x, '\\')) != NULL; )
+ *x = '/';
+#ifndef WIN32 /* for OS/2 only: */
+ /* Fix OS/2 HPFS filename case problem. */
+ str_tolower(r->uri);
+#endif
+ }
+#endif /* __EMX__ || WIN32 */
}
else {
r->args = NULL;