[issue10865] chroot-ing breaks encodings.idna
ulidtko
report at bugs.python.org
Sat Jan 8 08:02:58 CET 2011
New submission from ulidtko <ulidtko at gmail.com>:
Consider the following test script:
import os
import urllib.request
os.chroot("/tmp")
urllib.request.urlopen("http://localhost")
When executed with enough privileges, the script terminates with the following traceback:
Traceback (most recent call last):
File "./test.py", line 8, in <module>
urllib.request.urlopen("http://localhost")
File "/usr/lib/python3.1/urllib/request.py", line 121, in urlopen
File "/usr/lib/python3.1/urllib/request.py", line 350, in open
File "/usr/lib/python3.1/urllib/request.py", line 368, in _open
File "/usr/lib/python3.1/urllib/request.py", line 328, in _call_chain
File "/usr/lib/python3.1/urllib/request.py", line 1110, in http_open
File "/usr/lib/python3.1/urllib/request.py", line 1092, in do_open
File "/usr/lib/python3.1/http/client.py", line 940, in request
File "/usr/lib/python3.1/http/client.py", line 978, in _send_request
File "/usr/lib/python3.1/http/client.py", line 936, in endheaders
File "/usr/lib/python3.1/http/client.py", line 790, in _send_output
File "/usr/lib/python3.1/http/client.py", line 731, in send
File "/usr/lib/python3.1/http/client.py", line 713, in connect
File "/usr/lib/python3.1/socket.py", line 320, in create_connection
LookupError: unknown encoding: idna
Without the os.chroot line it runs ok.
Furthermore, when importing encodings.idna explicitly and before chroot-ing, any hostname refuses to resolve at all.
Script:
import os
import urllib.request
import encodings.idna
os.chroot("/tmp")
urllib.request.urlopen("http://localhost")
now terminates with the following traceback:
Traceback (most recent call last):
File "./test.py3", line 9, in <module>
urllib.request.urlopen("http://localhost")
File "/usr/lib/python3.1/urllib/request.py", line 121, in urlopen
File "/usr/lib/python3.1/urllib/request.py", line 350, in open
File "/usr/lib/python3.1/urllib/request.py", line 368, in _open
File "/usr/lib/python3.1/urllib/request.py", line 328, in _call_chain
File "/usr/lib/python3.1/urllib/request.py", line 1110, in http_open
File "/usr/lib/python3.1/urllib/request.py", line 1095, in do_open
urllib.error.URLError: <urlopen error [Errno -2] Name or service not known>
----------
components: Library (Lib)
messages: 125756
nosy: ulidtko
priority: normal
severity: normal
status: open
title: chroot-ing breaks encodings.idna
versions: Python 3.1
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue10865>
_______________________________________
More information about the Python-bugs-list
mailing list