diff options
author | Ryan Long <ryan.long@oarcorp.com> | 2021-02-12 13:43:43 -0500 |
---|---|---|
committer | Joel Sherrill <joel@rtems.org> | 2021-02-12 17:13:16 -0600 |
commit | 3f4cdd858923fc999ac7d815149af4c62b8e9c6e (patch) | |
tree | e1205fca477c3ebf5fa431ef06e4df9da4bd16fa /cpukit/libdebugger/rtems-debugger-target.c | |
parent | consolesimpletask.c: Fix Two Unchecked Return Values (CID #1437625 and #1472765) (diff) | |
download | rtems-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/libdebugger/rtems-debugger-target.c')
-rw-r--r-- | cpukit/libdebugger/rtems-debugger-target.c | 6 |
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; |