diff options
author | Tom de Vries <tdevries@suse.de> | 2022-07-15 18:46:03 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2022-07-21 15:06:40 +0200 |
commit | c2ae16cc58b64e21a6b993544943fb9612e904a2 (patch) | |
tree | b8ed3af6ef76ed5b0983a9eeeb39132c60de5579 /bfd/opncls.c | |
parent | a4f4bbc3530f68e615ac5614224bdcb7c21d68dc (diff) | |
download | gdb-c2ae16cc58b64e21a6b993544943fb9612e904a2.zip gdb-c2ae16cc58b64e21a6b993544943fb9612e904a2.tar.gz gdb-c2ae16cc58b64e21a6b993544943fb9612e904a2.tar.bz2 |
[gdb/symtab] Fix race condition in just_read_cus
Race condition between:
...
Read of size 8 at 0x7b640001f2c8 by thread T1:
#0 std::vector<dwarf2_per_cu_data*, std::allocator<dwarf2_per_cu_data*>
>::push_back(dwarf2_per_cu_data* const&)
/usr/include/c++/12/bits/stl_vector.h:1278 (gdb+0x888ad6)
#1 process_full_comp_unit gdb/dwarf2/read.c:8451 (gdb+0x8397d0)
#2 process_queue_item gdb/dwarf2/read.c:7592 (gdb+0x8359f5)
...
and:
...
Previous write of size 8 at 0x7b640001f2c8 by main thread:
#0 std::vector<dwarf2_per_cu_data*, std::allocator<dwarf2_per_cu_data*>
>::push_back(dwarf2_per_cu_data* const&)
/usr/include/c++/12/bits/stl_vector.h:1283 (gdb+0x888b52)
#1 process_full_comp_unit gdb/dwarf2/read.c:8451 (gdb+0x8397d0)
#2 process_queue_item gdb/dwarf2/read.c:7592 (gdb+0x8359f5)
...
Fix this by doing the just_read_cus push_back in a lock.
Diffstat (limited to 'bfd/opncls.c')
0 files changed, 0 insertions, 0 deletions