Przeglądaj źródła

server: handle empty/invalid URL

Helge Jung 9 lat temu
rodzic
commit
7b43b516c5
1 zmienionych plików z 4 dodań i 1 usunięć
  1. 4 1
      ffstatus/server.py

+ 4 - 1
ffstatus/server.py

@@ -18,7 +18,7 @@ class BatcaveHttpRequestHandler(BaseHTTPRequestHandler):
 		BaseHTTPRequestHandler.__init__(self, request, client_address, server)
 
 	def parse_url_pathquery(self):
-		url = re.match(r'^\/(?P<path>.+?)(\?(?P<query>.+))?$', self.path)
+		url = re.match(r'^/(?P<path>.*?)(\?(?P<query>.+))?$', self.path.strip())
 		if url is None:
 			logging.warn('Failed to parse URL \'' + str(self.path) + '\'.')
 			return ( None, None )
@@ -32,6 +32,9 @@ class BatcaveHttpRequestHandler(BaseHTTPRequestHandler):
 
 	def do_GET(self):
 		path, query = self.parse_url_pathquery()
+		if path is None:
+			self.send_error(400, 'Could not parse URL (' + str(self.path) + ')')
+                        return
 
 		if path == '':
 			self.respond_index(query)