-
-
Notifications
You must be signed in to change notification settings - Fork 33.2k
Closed
Labels
interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)type-crashA hard crash of the interpreter, possibly with a core dumpA hard crash of the interpreter, possibly with a core dump
Description
Crash report
Code says that it cannot fail:
cpython/Objects/bytearrayobject.c
Lines 44 to 56 in 4cd1076
| static int | |
| bytearray_getbuffer(PyObject *self, Py_buffer *view, int flags) | |
| { | |
| PyByteArrayObject *obj = _PyByteArray_CAST(self); | |
| if (view == NULL) { | |
| PyErr_SetString(PyExc_BufferError, | |
| "bytearray_getbuffer: view==NULL argument is obsolete"); | |
| return -1; | |
| } | |
| void *ptr = (void *) PyByteArray_AS_STRING(obj); | |
| /* cannot fail if view != NULL and readonly == 0 */ | |
| (void)PyBuffer_FillInfo(view, (PyObject*)obj, ptr, Py_SIZE(obj), 0, flags); |
But, it can:
Lines 770 to 774 in 4cd1076
| if (flags != PyBUF_SIMPLE) { /* fast path */ | |
| if (flags == PyBUF_READ || flags == PyBUF_WRITE) { | |
| PyErr_BadInternalCall(); | |
| return -1; | |
| } |
I have a PR ready.
Linked PRs
Metadata
Metadata
Assignees
Labels
interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)type-crashA hard crash of the interpreter, possibly with a core dumpA hard crash of the interpreter, possibly with a core dump