Description
In SignalManager::qt_metacall of signalmanager.cpp
PyErr_Restore might cause segment fault. Because it takes away a reference to each object that PyObject_Str(errValue) will fail
PyErr_Fetch alone should be suffice.
"you must own a reference to each object before the call and after the call you no longer own these references." – from Python doc site
PyObject *errType, *errValue, *errTraceback;
PyErr_Fetch(&errType, &errValue, &errTraceback);
PyErr_Restore(errType, errValue, errTraceback);
const QString errString = QLatin1String(Shiboken::String::toCString(PyObject_Str(errValue)));
Attachments
For Gerrit Dashboard: PYSIDE-464 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
187514,6 | Fix errorhandling in ‘signalmanager.cpp.in’ | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |