mirror of
https://github.com/openvswitch/ovs
synced 2025-10-19 14:37:21 +00:00
python-c-ext: Handle initialization failures.
PyModule_AddObject() may fail and it doesn't steal references in this case. The error condition should be handled to avoid possible memory leaks. And while it's not strictly specified if PyModule_Create may fail, most of the examples in python documentation include handling of a NULL case. Acked-by: Mike Pattrick <mkp@redhat.com> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
This commit is contained in:
@@ -229,9 +229,17 @@ PyInit__json(void)
|
|||||||
if (PyType_Ready(&json_ParserType) < 0) {
|
if (PyType_Ready(&json_ParserType) < 0) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
m = PyModule_Create(&moduledef);
|
m = PyModule_Create(&moduledef);
|
||||||
|
if (!m) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
Py_INCREF(&json_ParserType);
|
Py_INCREF(&json_ParserType);
|
||||||
PyModule_AddObject(m, "Parser", (PyObject *) & json_ParserType);
|
if (PyModule_AddObject(m, "Parser", (PyObject *) &json_ParserType) < 0) {
|
||||||
|
Py_DECREF(&json_ParserType);
|
||||||
|
Py_DECREF(m);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user