[rtems commit] rtems-debugger-target.c: Fix Dereference before null check (CID #1468682)

Joel Sherrill joel at rtems.org
Fri Feb 12 23:13:43 UTC 2021


Module:    rtems
Branch:    master
Commit:    3f4cdd858923fc999ac7d815149af4c62b8e9c6e
Changeset: http://git.rtems.org/rtems/commit/?id=3f4cdd858923fc999ac7d815149af4c62b8e9c6e

Author:    Ryan Long <ryan.long at oarcorp.com>
Date:      Fri Feb 12 13:43:43 2021 -0500

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(-)

diff --git a/cpukit/libdebugger/rtems-debugger-target.c b/cpukit/libdebugger/rtems-debugger-target.c
index e495170..bf75797 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;
 



More information about the vc mailing list