forked from Imagelibrary/binutils-gdb
Fix two Python calls that don't check for errors
PyModule_AddObject steals a reference on success, but not on error, which is why we have gdb_pymodule_addobject. I found one spot still calling the former, which could in theory leak memory on failure. This patch fixes this. In the same function I found an unchecked call to PyDict_SetItemString. This patch fixes this as well. Approved-By: Andrew Burgess <aburgess@redhat.com>
This commit is contained in:
@@ -1647,11 +1647,15 @@ gdbpy_initialize_disasm ()
|
||||
gdb_disassembler_module = PyModule_Create (&python_disassembler_module_def);
|
||||
if (gdb_disassembler_module == nullptr)
|
||||
return -1;
|
||||
PyModule_AddObject(gdb_module, "disassembler", gdb_disassembler_module);
|
||||
if (gdb_pymodule_addobject (gdb_module, "disassembler",
|
||||
gdb_disassembler_module) < 0)
|
||||
return -1;
|
||||
|
||||
/* This is needed so that 'import _gdb.disassembler' will work. */
|
||||
PyObject *dict = PyImport_GetModuleDict ();
|
||||
PyDict_SetItemString (dict, "_gdb.disassembler", gdb_disassembler_module);
|
||||
if (PyDict_SetItemString (dict, "_gdb.disassembler",
|
||||
gdb_disassembler_module) < 0)
|
||||
return -1;
|
||||
|
||||
for (int i = 0; i <= (int) dis_style_comment_start; ++i)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user