-
-
Notifications
You must be signed in to change notification settings - Fork 33.2k
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 exceededIt should be:
>>> import _sre
>>> _sre.compile('', 0, ['abc'], 0, {}, ())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: an integer is requiredBecause 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