File: | _portaudiomodule.c |
Function: | pa_get_device_info |
Error: | dereferencing NULL (py_info->devInfo) at _portaudiomodule.c:1466 |
1445 static PyObject *
1446 pa_get_device_info(PyObject *self, PyObject *args)
1447 {
1448 PaDeviceIndex index;
1449 PaDeviceInfo* _info;
1450 _pyAudio_paDeviceInfo* py_info;
1451
1452 if (!PyArg_ParseTuple(args, "i", &index))
when PyArg_ParseTuple() succeeds
taking False path
1453 return NULL;
1454
1455 _info = (PaDeviceInfo *) Pa_GetDeviceInfo(index);
1456
1457 if (!_info) {
when treating unknown const struct PaDeviceInfo * from _portaudiomodule.c:1455 as non-NULL
taking False path
1458 PyErr_SetObject(PyExc_IOError,
1459 Py_BuildValue("(s,i)",
1460 "Invalid device info", paInvalidDevice));
1461 return NULL;
1462 }
1463
1464 py_info = _create_paDeviceInfo_object();
when _create_paDeviceInfo_object() fails
1465 py_info->devInfo = _info;
dereferencing NULL (py_info->devInfo) at _portaudiomodule.c:1466
1466 return (PyObject *) py_info;
1467 }
File: | _portaudiomodule.c |
Function: | pa_get_device_info |
Error: | ob_refcnt of new ref from call to Py_BuildValue is 1 too high |
1445 static PyObject *
1446 pa_get_device_info(PyObject *self, PyObject *args)
1447 {
1448 PaDeviceIndex index;
1449 PaDeviceInfo* _info;
1450 _pyAudio_paDeviceInfo* py_info;
1451
1452 if (!PyArg_ParseTuple(args, "i", &index))
when PyArg_ParseTuple() succeeds
taking False path
1453 return NULL;
1454
1455 _info = (PaDeviceInfo *) Pa_GetDeviceInfo(index);
1456
1457 if (!_info) {
when treating unknown const struct PaDeviceInfo * from _portaudiomodule.c:1455 as NULL
taking True path
1458 PyErr_SetObject(PyExc_IOError,
when Py_BuildValue() succeeds
calling PyErr_SetObject()
new ref from call to Py_BuildValue allocated at: PyErr_SetObject(PyExc_IOError,
ob_refcnt is now refs: 1 + N where N >= 0
ob_refcnt is now refs: 1 + N where N >= 1
1459 Py_BuildValue("(s,i)",
1460 "Invalid device info", paInvalidDevice));
1461 return NULL;
1462 }
1463
1464 py_info = _create_paDeviceInfo_object();
1465 py_info->devInfo = _info;
1466 return (PyObject *) py_info;
1467 }
ob_refcnt of new ref from call to Py_BuildValue is 1 too high
was expecting final ob_refcnt to be N + 0 (for some unknown N)
but final ob_refcnt is N + 1