]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gdbserver: Add assert in x86_linux_read_description.
authorChristina Schimpe <christina.schimpe@intel.com>
Tue, 6 Feb 2024 18:37:27 +0000 (13:37 -0500)
committerChristina Schimpe <christina.schimpe@intel.com>
Fri, 29 Aug 2025 17:02:08 +0000 (17:02 +0000)
On x86 the PTRACE_GETREGSET request is currently only used for the xstate regset.
The size of the xstate regset is initialized to 0 such that it can be reset to
the appropriate size once we know it is supported for the current target
in x86_linux_read_description.

However, this configuration would not just affect the xstate regset but any regset
with PTRACE_GETREGSET request that is added in the future.  The new regset  would be
misconfigured with the xstate regset size.  To avoid this we add an assert for
unsupported regsets and check explicitly for the note type of the register set.

Reviewed-by: Thiago Jung Bauermann <thiago.bauermann@linaro.org>
Approved-By: Luis Machado <luis.machado@arm.com>
gdbserver/linux-x86-low.cc

index 918630d4b613a8d1d5d97a09025f5ad5b4ad12c3..24920e71a53bd53174ae4171e506b2b064a877f5 100644 (file)
@@ -894,7 +894,12 @@ x86_linux_read_description ()
           regset++)
        {
          if (regset->get_request == PTRACE_GETREGSET)
-           regset->size = xsave_len;
+           {
+             if (regset->nt_type == NT_X86_XSTATE)
+               regset->size = xsave_len;
+             else
+               gdb_assert_not_reached ("invalid regset type.");
+           }
          else if (regset->type != GENERAL_REGS)
            regset->size = 0;
        }