Skip to content

Commit

Permalink
[3.11] gh-100474: Fix handling of dirs named index.html in http.server (
Browse files Browse the repository at this point in the history
GH-100505)

Co-authored-by: James Frost <git@frost.cx>
  • Loading branch information
miss-islington and Fraetor authored Dec 24, 2022
1 parent 80013d7 commit 714a93f
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 1 deletion.
2 changes: 1 addition & 1 deletion Lib/http/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -708,7 +708,7 @@ def send_head(self):
return None
for index in "index.html", "index.htm":
index = os.path.join(path, index)
if os.path.exists(index):
if os.path.isfile(index):
path = index
break
else:
Expand Down
3 changes: 3 additions & 0 deletions Lib/test/test_httpservers.py
Original file line number Diff line number Diff line change
Expand Up @@ -489,6 +489,9 @@ def test_get(self):
self.check_status_and_reason(response, HTTPStatus.NOT_FOUND)
response = self.request('/' + 'ThisDoesNotExist' + '/')
self.check_status_and_reason(response, HTTPStatus.NOT_FOUND)
os.makedirs(os.path.join(self.tempdir, 'spam', 'index.html'))
response = self.request(self.base_url + '/spam/')
self.check_status_and_reason(response, HTTPStatus.OK)

data = b"Dummy index file\r\n"
with open(os.path.join(self.tempdir_name, 'index.html'), 'wb') as f:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
:mod:`http.server` now checks that an index page is actually a regular file before trying
to serve it. This avoids issues with directories named ``index.html``.

0 comments on commit 714a93f

Please sign in to comment.