Message174893
>> Oh, PyUnicode_Tailmatch() documentation doesn't mention that the function
>> can fail.
>
> But it does.
>
> .. c:function:: int PyUnicode_Tailmatch(PyObject *str, PyObject *substr, \
> Py_ssize_t start, Py_ssize_t end, int direction)
>
> Return 1 if *substr* matches ``str[start:end]`` at the given tail end
> (*direction* == -1 means to do a prefix match, *direction* == 1 a suffix match),
> 0 otherwise. Return ``-1`` if an error occurred.
Oh, I read the "documentation" in unicodeobject.h:
/* Return 1 if substr matches str[start:end] at the given tail end, 0
otherwise. */
The problem is that tailmatch() returns 0 if PyUnicode_READY() failed.
It is a bug, even if it cannot occur because PyUnicode_Tailmatch()
checks that the both strings are ready. |
|
Date |
User |
Action |
Args |
2012-11-05 11:36:08 | vstinner | set | recipients:
+ vstinner, loewis, serhiy.storchaka |
2012-11-05 11:36:08 | vstinner | link | issue16281 messages |
2012-11-05 11:36:08 | vstinner | create | |
|