Commit
56a7aaa16bfe introduced a memory leak on the error path for a
Py_BuildValue built object that on some newly introduced error path
has not the correct reference count handling, fix that by decrementing
the refcount in these path.
Fixes: 56a7aaa16bfe ("tools: add physinfo arch_capabilities handling for Arm")
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
sve_vl_bits = arch_capabilities_arm_sve(pinfo.arch_capabilities);
py_arm_sve_vl = PyLong_FromUnsignedLong(sve_vl_bits);
- if ( !py_arm_sve_vl )
+ if ( !py_arm_sve_vl ) {
+ Py_DECREF(objret);
return NULL;
+ }
- if( PyDict_SetItemString(objret, "arm_sve_vl", py_arm_sve_vl) )
+ if( PyDict_SetItemString(objret, "arm_sve_vl", py_arm_sve_vl) ) {
+ Py_DECREF(py_arm_sve_vl);
+ Py_DECREF(objret);
return NULL;
+ }
}
#endif