Use posixpath instead of os.path to normalize request path.
This commit is contained in:
		| @@ -34,6 +34,7 @@ should have been included in this package. | ||||
| """ | ||||
|  | ||||
| import os | ||||
| import posixpath | ||||
| import base64 | ||||
| import socket | ||||
| # Manage Python2/3 different modules | ||||
| @@ -106,8 +107,9 @@ class CalendarHTTPHandler(server.BaseHTTPRequestHandler): | ||||
|     @property | ||||
|     def _calendar(self): | ||||
|         """The ``ical.Calendar`` object corresponding to the given path.""" | ||||
|         # ``self.path`` must be something like a posix path | ||||
|         # ``normpath`` should clean malformed and malicious request paths | ||||
|         attributes = os.path.normpath(self.path.strip("/")).split("/") | ||||
|         attributes = posixpath.normpath(self.path.strip("/")).split("/") | ||||
|         if len(attributes) >= 2: | ||||
|             path = "%s/%s" % (attributes[0], attributes[1]) | ||||
|             return ical.Calendar(path) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Guillaume Ayoub
					Guillaume Ayoub