-
-
Notifications
You must be signed in to change notification settings - Fork 32.4k
Closed
Labels
extension-modulesC modules in the Modules dirC modules in the Modules dirtopic-regextype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Description
Bug report
Reproduction:
>>> import _sre
>>> _sre.compile('', 0, ['abc'], 0, {}, ())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: regular expression code size limit exceeded
It should be:
>>> import _sre
>>> _sre.compile('', 0, ['abc'], 0, {}, ())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: an integer is required
Because the third arg is code: object(subclass_of='&PyList_Type')
, it is assumed to be integers inside.
Problematic lines:
Lines 1510 to 1515 in def7ea5
unsigned long value = PyLong_AsUnsignedLong(o); | |
self->code[i] = (SRE_CODE) value; | |
if ((unsigned long) self->code[i] != value) { | |
PyErr_SetString(PyExc_OverflowError, | |
"regular expression code size limit exceeded"); | |
break; |
They do not check for PyLong_AsUnsignedLong
errors.
I have a PR ready :)
Linked PRs
Metadata
Metadata
Assignees
Labels
extension-modulesC modules in the Modules dirC modules in the Modules dirtopic-regextype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error