[issue26198] PyArg_ParseTuple with format "et#" and "es#" detects overflow by raising TypeError instead of ValueError

Hrvoje Nikšić report at bugs.python.org
Mon Jan 25 11:24:48 EST 2016


Hrvoje Nikšić added the comment:

The problem can be encountered and easily reproduced by calling os.path functions, such as os.path.abspath, with a sufficiently large string on Windows:

>>> os.path.abspath("a" * 1024)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "P:\...\lib\ntpath.py", line 471, in abspath
TypeError: must be (buffer overflow), not str

The error message is somewhat confusing, making it look like the "must be" and "not" arguments are swapped. Ideally, the message could be along the lines of "must be a string of no more than X characters".

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue26198>
_______________________________________


More information about the Python-bugs-list mailing list