Fix gpu.types.GPUTexture crash when the size argument was too big
Missing length check on the size argument before copying it into a fixed size buffer.
This commit is contained in:
@@ -153,6 +153,12 @@ static PyObject *pygpu_texture__tp_new(PyTypeObject *UNUSED(self), PyObject *arg
|
|||||||
int len = 1;
|
int len = 1;
|
||||||
if (PySequence_Check(py_size)) {
|
if (PySequence_Check(py_size)) {
|
||||||
len = PySequence_Size(py_size);
|
len = PySequence_Size(py_size);
|
||||||
|
if ((len < 1) || (len > 3)) {
|
||||||
|
PyErr_Format(PyExc_ValueError,
|
||||||
|
"GPUTexture.__new__: \"size\" must be between 1 and 3 in length (got %d)",
|
||||||
|
len);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
if (PyC_AsArray(size, sizeof(*size), py_size, len, &PyLong_Type, "GPUTexture.__new__") == -1) {
|
if (PyC_AsArray(size, sizeof(*size), py_size, len, &PyLong_Type, "GPUTexture.__new__") == -1) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user