Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
791ac54a
Commit
791ac54a
authored
Apr 18, 2016
by
Martin Panter
Browse files
Options
Browse Files
Download
Plain Diff
Issue #26657: Merge http.server fix from 3.5
parents
d2be07e1
d274b3f1
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
26 additions
and
3 deletions
+26
-3
Lib/http/server.py
Lib/http/server.py
+3
-3
Lib/test/test_httpservers.py
Lib/test/test_httpservers.py
+19
-0
Misc/NEWS
Misc/NEWS
+4
-0
No files found.
Lib/http/server.py
View file @
791ac54a
...
...
@@ -768,9 +768,9 @@ class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
words
=
filter
(
None
,
words
)
path
=
os
.
getcwd
()
for
word
in
words
:
drive
,
word
=
os
.
path
.
splitdrive
(
word
)
head
,
word
=
os
.
path
.
split
(
word
)
if
word
in
(
os
.
curdir
,
os
.
pardir
):
continue
if
os
.
path
.
dirname
(
word
)
or
word
in
(
os
.
curdir
,
os
.
pardir
):
# Ignore components that are not a simple file/directory name
continue
path
=
os
.
path
.
join
(
path
,
word
)
if
trailing_slash
:
path
+=
'/'
...
...
Lib/test/test_httpservers.py
View file @
791ac54a
...
...
@@ -12,6 +12,7 @@ import os
import
sys
import
re
import
base64
import
ntpath
import
shutil
import
urllib.parse
import
html
...
...
@@ -960,6 +961,24 @@ class SimpleHTTPRequestHandlerTestCase(unittest.TestCase):
path
=
self
.
handler
.
translate_path
(
'//filename?foo=bar'
)
self
.
assertEqual
(
path
,
self
.
translated
)
def
test_windows_colon
(
self
):
with
support
.
swap_attr
(
server
.
os
,
'path'
,
ntpath
):
path
=
self
.
handler
.
translate_path
(
'c:c:c:foo/filename'
)
path
=
path
.
replace
(
ntpath
.
sep
,
os
.
sep
)
self
.
assertEqual
(
path
,
self
.
translated
)
path
=
self
.
handler
.
translate_path
(
'
\
\
c:../filename'
)
path
=
path
.
replace
(
ntpath
.
sep
,
os
.
sep
)
self
.
assertEqual
(
path
,
self
.
translated
)
path
=
self
.
handler
.
translate_path
(
'c:
\
\
c:..
\
\
foo/filename'
)
path
=
path
.
replace
(
ntpath
.
sep
,
os
.
sep
)
self
.
assertEqual
(
path
,
self
.
translated
)
path
=
self
.
handler
.
translate_path
(
'c:c:foo
\
\
c:c:bar/filename'
)
path
=
path
.
replace
(
ntpath
.
sep
,
os
.
sep
)
self
.
assertEqual
(
path
,
self
.
translated
)
class
MiscTestCase
(
unittest
.
TestCase
):
def
test_all
(
self
):
...
...
Misc/NEWS
View file @
791ac54a
...
...
@@ -245,6 +245,10 @@ Core and Builtins
Library
-------
-
Issue
#
26657
:
Fix
directory
traversal
vulnerability
with
http
.
server
on
Windows
.
This
fixes
a
regression
that
was
introduced
in
3.3.4
rc1
and
3.4.0
rc1
.
Based
on
patch
by
Philipp
Hagemeister
.
-
Issue
#
26717
:
Stop
encoding
Latin
-
1
-
ized
WSGI
paths
with
UTF
-
8.
Patch
by
Anthony
Sottile
.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment