summaryrefslogtreecommitdiffstats
path: root/cpukit
diff options
context:
space:
mode:
authorRyan Long <ryan.long@oarcorp.com>2021-02-12 13:43:43 -0500
committerJoel Sherrill <joel@rtems.org>2021-02-12 17:13:16 -0600
commit3f4cdd858923fc999ac7d815149af4c62b8e9c6e (patch)
treee1205fca477c3ebf5fa431ef06e4df9da4bd16fa /cpukit
parentconsolesimpletask.c: Fix Two Unchecked Return Values (CID #1437625 and #1472765) (diff)
downloadrtems-3f4cdd858923fc999ac7d815149af4c62b8e9c6e.tar.bz2
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.
Diffstat (limited to 'cpukit')
-rw-r--r--cpukit/libdebugger/rtems-debugger-target.c6
1 files changed, 4 insertions, 2 deletions
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;