Serhiy Storchaka <[email protected]> added the comment:
In earlier versions NULs in paths caused silent truncating the path, and this
is considered a vulnerability.
In 2.7 and earlier versions of 3.x a TypeError was raised in os.path.exists().
ValueError in this function (and many others) is raised since 3.5, because it
looks more appropriate.
Similar exceptions are raised perhaps in hundreds functions. It is impossible
to document them all, and os.path.exists() doesn't look special enough for
documenting this only for it.
However os.path.exists() is special in the sense that this exception can be
interpreted as a false value. Since os.path.exists() already catches OSError
and interprets it as a false result, it is easier to add a ValueError here. I
don't think this will break much code if add it only in 3.8. This will cover
also the case of unencodable/undecodable paths ('\udfff', b'\x98').
----------
nosy: +serhiy.storchaka
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue33721>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com