[binutils-gdb] gdbserver: check for nullptr condition in regcache::get_register_status

Tankut Baris Aktemur aktemur@sourceware.org
Tue Dec 17 08:15:49 GMT 2024


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=81b65d86956f1f47cf7d45cd58d9ca849fe8ffc6

commit 81b65d86956f1f47cf7d45cd58d9ca849fe8ffc6
Author: Tankut Baris Aktemur <tankut.baris.aktemur@intel.com>
Date:   Tue Dec 17 08:48:03 2024 +0100

    gdbserver: check for nullptr condition in regcache::get_register_status
    
    A regcache can be initialized with a register value buffer, in which
    case, the register_status pointer is null.  This condition is checked
    in set_register_status, but not in get_register_status.  Do this check
    for consistence and safety.
    
    Approved-By: Simon Marchi <simon.marchi@efficios.com>

Diff:
---
 gdbserver/regcache.cc | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gdbserver/regcache.cc b/gdbserver/regcache.cc
index 583b5624333..4a064f6374b 100644
--- a/gdbserver/regcache.cc
+++ b/gdbserver/regcache.cc
@@ -526,7 +526,10 @@ regcache::get_register_status (int regnum) const
 {
 #ifndef IN_PROCESS_AGENT
   gdb_assert (regnum >= 0 && regnum < tdesc->reg_defs.size ());
-  return (enum register_status) (register_status[regnum]);
+  if (register_status != nullptr)
+    return (enum register_status) (register_status[regnum]);
+  else
+    return REG_VALID;
 #else
   return REG_VALID;
 #endif


More information about the Gdb-cvs mailing list