New submission from ulidtko <ulid...@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 <rep...@bugs.python.org> <http://bugs.python.org/issue10865> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com