Fix several coverity issues:

* CID 350617: Dereference after null check
* CID 350585: Out-of-bounds read
* CID 350624: Resource leak
* CID 332701: Uncaught exception
* CID 350642: Uninitialized scalar field
* CID 350590: Uninitialized scalar field
* CID 350629: Uninitialized scalar variable
* CID 350602: Uninitialized scalar variable
* CID 350564: Uninitialized scalar variable
* CID 350548: Uninitialized scalar variable
This commit is contained in:
wmayer
2022-03-13 12:12:49 +01:00
parent afabaea5cb
commit 5fd93b7d3b
11 changed files with 85 additions and 58 deletions

View File

@@ -50,7 +50,7 @@ std::string MetadataPy::representation(void) const
PyObject* MetadataPy::PyMake(struct _typeobject*, PyObject* args, PyObject*) // Python wrapper
{
// create a new instance of MetadataPy and the Twin object
// create a new instance of MetadataPy and the Twin object
const char* filename;
if (!PyArg_ParseTuple(args, "s", &filename))
return nullptr;
@@ -75,13 +75,13 @@ int MetadataPy::PyInit(PyObject* args, PyObject* /*kwd*/)
PyErr_Clear();
const char* file;
if (PyArg_ParseTuple(args, "s", &file)) {
App::Metadata* a = new Metadata(file);
*(getMetadataPtr()) = *a;
App::Metadata a(file);
*(getMetadataPtr()) = a;
return 0;
}
// Copy constructor
PyErr_Clear();
PyErr_Clear();
PyObject* o;
if (PyArg_ParseTuple(args, "O!", &(App::MetadataPy::Type), &o)) {
App::Metadata* a = static_cast<App::MetadataPy*>(o)->getMetadataPtr();