forked from Imagelibrary/rtems
rtems-debugger-target.c: Fix Dereference before null check (CID #1468682)
CID 1468682: swbreaks is assigned a value dereferenced from target before it has been verified that target is not null. Closes #4240.
This commit is contained in:
@@ -171,17 +171,19 @@ int
|
|||||||
rtems_debugger_target_swbreak_control(bool insert, DB_UINT addr, DB_UINT kind)
|
rtems_debugger_target_swbreak_control(bool insert, DB_UINT addr, DB_UINT kind)
|
||||||
{
|
{
|
||||||
rtems_debugger_target* target = rtems_debugger->target;
|
rtems_debugger_target* target = rtems_debugger->target;
|
||||||
rtems_debugger_target_swbreak* swbreaks = target->swbreaks.block;
|
rtems_debugger_target_swbreak* swbreaks;
|
||||||
size_t swbreak_size;
|
size_t swbreak_size;
|
||||||
uint8_t* loc = (void*) addr;
|
uint8_t* loc = (void*) addr;
|
||||||
size_t i;
|
size_t i;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
if (target == NULL || swbreaks == NULL || kind != target->breakpoint_size) {
|
if (target == NULL || target->swbreaks.block == NULL ||
|
||||||
|
kind != target->breakpoint_size) {
|
||||||
errno = EIO;
|
errno = EIO;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
swbreaks = target->swbreaks.block;
|
||||||
swbreak_size =
|
swbreak_size =
|
||||||
sizeof(rtems_debugger_target_swbreak) + target->breakpoint_size;
|
sizeof(rtems_debugger_target_swbreak) + target->breakpoint_size;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user