Antoine Pitrou <[email protected]> added the comment:
Indeed, there seems to be no mechanism available to forbid NUL chars under
Windows (for Python 3.x):
>>> open("LICENSE\x00foobar")
<_io.TextIOWrapper name='LICENSE\x00foobar' mode='r' encoding='cp1252'>
>>> os.stat("LICENSE\x00foobar")
nt.stat_result(st_mode=33206, st_ino=2251799813779714, st_dev=0, st_nlink=1,
st_uid=0, st_gid=0, st_size=15132, st_atime=8589934592, st_mtime=8589934592,
st_ctime=1301169903)
I think PyUnicode_AsUnicode should grow a NUL char check in Python 3.3, since
it doesn't return the size anyway. I don't think we can do that in previous
versions, though, so we need an alternate strategy. Scanning the unicode string
for NUL characters is enough. That should be easy by using
PyUnicode_AsUnicodeAndSize.
As for the patch:
- the test should be in test_io; you may also add a separate in test_fileio
- conv_name is never decref'ed, and so there will be a memory leak
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue13848>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com