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:
Ryan Long
2021-02-12 13:43:43 -05:00
committed by Joel Sherrill
parent 14f5a0597a
commit 3f4cdd8589

View File

@@ -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;