mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2026-08-27 00:26:02 -04:00
gdb/python: check return value of PyObject_New in all cases
I spotted a few cases where the return value of PyObject_New was not being checked against nullptr, but we were dereferencing the result. All fixed here. The fixed functions can now return NULL, so I checked all the callers, and I believe there will handle a return of NULL correctly. Assuming calls to PyObject_New never fail, there should be no user visible changes after this commit. No tests here as I don't know how we'd go about causing a Python object allocation to fail. Approved-By: Simon Marchi <simon.marchi@efficios.com>
This commit is contained in:
parent
8186f0d31d
commit
dbd05b9edc
3 changed files with 8 additions and 0 deletions
|
|
@ -356,6 +356,9 @@ block_to_block_object (const struct block *block, struct objfile *objfile)
|
|||
}
|
||||
|
||||
result = PyObject_New (block_object, &block_object_type);
|
||||
if (result == nullptr)
|
||||
return nullptr;
|
||||
|
||||
result->block = block;
|
||||
result->objfile = objfile;
|
||||
|
||||
|
|
|
|||
|
|
@ -696,6 +696,9 @@ gdbpy_current_recording (PyObject *self, PyObject *args)
|
|||
Py_RETURN_NONE;
|
||||
|
||||
ret = PyObject_New (recpy_record_object, &recpy_record_type);
|
||||
if (ret == nullptr)
|
||||
return nullptr;
|
||||
|
||||
ret->thread = inferior_thread ();
|
||||
ret->method = target_record_method (ret->thread->ptid);
|
||||
|
||||
|
|
|
|||
|
|
@ -287,6 +287,8 @@ pyuw_create_unwind_info (PyObject *pyo_pending_frame,
|
|||
|
||||
unwind_info_object *unwind_info
|
||||
= PyObject_New (unwind_info_object, &unwind_info_object_type);
|
||||
if (unwind_info == nullptr)
|
||||
return nullptr;
|
||||
|
||||
unwind_info->frame_id = frame_id;
|
||||
Py_INCREF (pyo_pending_frame);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue