[New-bugs-announce] [issue21970] Broken code for handling file://host in urllib.request.FileHandler.file_open

Martin Panter report at bugs.python.org
Sun Jul 13 03:49:21 CEST 2014


New submission from Martin Panter:

This isn’t a particularly important problem for me but when reading the code I noticed some bit rot in this function, where a host name in a “file:” URL would be handled differently than intended.

* The url[:2] == '//' check is probably wrong because it is comparing the URL’s path component (selector), not the prefix for a host name. Compare urlopen("file://host//") and urlopen("file://host/") error messages.

* The req.host is self.get_names() should probably use “in”, not “is”. The code author presumably expected urlopen("file://127.0.0.1//dev/null") to work.

* Also it seems odd that urlopen("file://remote/missing") immediately reports “No such file”, while urlopen("file://remote/") blocks for a host name lookup and then reports “not on local host”.

----------
components: Library (Lib)
messages: 222901
nosy: vadmium
priority: normal
severity: normal
status: open
title: Broken code for handling file://host in urllib.request.FileHandler.file_open
versions: Python 3.4

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue21970>
_______________________________________


More information about the New-bugs-announce mailing list