[gdb] Fix heap-buffer-overflow in find_program_interpreter
[binutils-gdb.git] / gdb / x86-bsd-nat.h
index 0beb9466ec6141e53341043d8161ab6de637becd..8b6760e716937165fa07b9ca9b2fed15a21ed4e7 100644 (file)
@@ -1,6 +1,6 @@
 /* Native-dependent code for x86 BSD's.
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2022 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
 #ifndef X86_BSD_NAT_H
 #define X86_BSD_NAT_H
 
-/* Low level x86 XSAVE info.  */
-extern size_t x86bsd_xsave_len;
-
-/* Create a prototype *BSD/x86 target.  The client can override it
-   with local methods.  */
-
-extern struct target_ops *x86bsd_target (void);
+#include "x86-nat.h"
+
+/* A prototype *BSD/x86 target.  */
+
+#ifdef HAVE_PT_GETDBREGS
+template<typename BaseTarget>
+class x86bsd_nat_target : public x86_nat_target<BaseTarget>
+{
+  using base_class = x86_nat_target<BaseTarget>;
+public:
+  void mourn_inferior () override
+  {
+    x86_cleanup_dregs ();
+    base_class::mourn_inferior ();
+  }
+};
+#else /* !HAVE_PT_GETDBREGS */
+template<typename BaseTarget>
+class x86bsd_nat_target : public BaseTarget
+{
+};
+#endif /* HAVE_PT_GETDBREGS */
 
 #endif /* x86-bsd-nat.h */