Fix use-after-move bug in add_thread_object
authorTom Tromey <tromey@adacore.com>
Thu, 11 Jul 2019 15:09:52 +0000 (09:09 -0600)
committerTom Tromey <tromey@adacore.com>
Thu, 11 Jul 2019 15:15:18 +0000 (09:15 -0600)
commit 05b08ac1608 ("Reduce manual reference counting in
py-inferior.c") introduced a use-after-move bug in add_thread_object,
causing a test suite failure.  This patch fixes the bug.

Tested on x86-64 Fedora 29.

gdb/ChangeLog
2019-07-11  Tom Tromey  <tromey@adacore.com>

* python/py-inferior.c (add_thread_object): Don't use thread_obj
after it has been moved.

gdb/ChangeLog
gdb/python/py-inferior.c

index 49ccba7..b5585b4 100644 (file)
@@ -1,3 +1,8 @@
+2019-07-11  Tom Tromey  <tromey@adacore.com>
+
+       * python/py-inferior.c (add_thread_object): Don't use thread_obj
+       after it has been moved.
+
 2019-07-10  Simon Marchi  <simon.marchi@polymtl.ca>
 
        * valops.c (value_must_coerce_to_target): Change return type to
index bf43012..2888222 100644 (file)
@@ -344,7 +344,7 @@ add_thread_object (struct thread_info *tp)
     return;
 
   gdbpy_ref<> event = create_thread_event_object (&new_thread_event_object_type,
-                                                 (PyObject *) thread_obj.get ());
+                                                 (PyObject *) inf_obj);
   if (event == NULL
       || evpy_emit_event (event.get (), gdb_py_events.new_thread) < 0)
     gdbpy_print_stack ();