Serhiy Storchaka <storchaka+cpyt...@gmail.com> 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 <rep...@bugs.python.org>
<https://bugs.python.org/issue33721>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to