From 3f4cdd858923fc999ac7d815149af4c62b8e9c6e Mon Sep 17 00:00:00 2001 From: Ryan Long Date: Fri, 12 Feb 2021 13:43:43 -0500 Subject: 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. --- cpukit/libdebugger/rtems-debugger-target.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'cpukit') diff --git a/cpukit/libdebugger/rtems-debugger-target.c b/cpukit/libdebugger/rtems-debugger-target.c index e4951701e9..bf7579700d 100644 --- a/cpukit/libdebugger/rtems-debugger-target.c +++ b/cpukit/libdebugger/rtems-debugger-target.c @@ -171,17 +171,19 @@ int rtems_debugger_target_swbreak_control(bool insert, DB_UINT addr, DB_UINT kind) { rtems_debugger_target* target = rtems_debugger->target; - rtems_debugger_target_swbreak* swbreaks = target->swbreaks.block; + rtems_debugger_target_swbreak* swbreaks; size_t swbreak_size; uint8_t* loc = (void*) addr; size_t i; int r; - if (target == NULL || swbreaks == NULL || kind != target->breakpoint_size) { + if (target == NULL || target->swbreaks.block == NULL || + kind != target->breakpoint_size) { errno = EIO; return -1; } + swbreaks = target->swbreaks.block; swbreak_size = sizeof(rtems_debugger_target_swbreak) + target->breakpoint_size; -- cgit v1.2.3