[io] Protect out-of-bounds access in R__WriteDestructorBody:#5642
Conversation
Fixes assert in roottest/root/meta/MakeProject/runcms310.C
```
/builddir/build/BUILD/gcc-8.3.1-20190223/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/bits/basic_string.h:1067: std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::reference std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator[](std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::reference = char&; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]: Assertion '__pos <= size()' failed.
at /mnt/build/wsincrmaster/LABEL/ROOT-fedora29/SPEC/python3/root/io/io/src/TStreamerInfo.cxx:3531
subClasses=0x7fffffff8db0, top=true)
at /mnt/build/wsincrmaster/LABEL/ROOT-fedora29/SPEC/python3/root/io/io/src/TStreamerInfo.cxx:3772
subClasses=0x7fffffff8db0, extrainfos=0x7fffffff9210)
at /mnt/build/wsincrmaster/LABEL/ROOT-fedora29/SPEC/python3/root/io/io/src/TStreamerInfo.cxx:3976
at /mnt/build/wsincrmaster/LABEL/ROOT-fedora29/SPEC/python3/root/io/io/src/TFile.cxx:2843
```
where
```
(gdb) p inside
$1 = std::vector of length 3, capacity 4 = {"std::vector", "std::pair<edm::BranchKey,edm::BranchDescription>", ""}
```
|
Starting build on |
0167a18 to
3cc128d
Compare
|
Starting build on |
|
Build failed on ROOT-fedora31/noimt. Failing tests:
|
|
Build failed on ROOT-fedora30/cxx14. Failing tests:
|
|
Build failed on ROOT-fedora29/python3. Failing tests:
|
|
Build failed on ROOT-ubuntu16/nortcxxmod. Failing tests:
|
1 similar comment
|
Build failed on ROOT-ubuntu16/nortcxxmod. Failing tests:
|
|
Build failed on mac1015/cxx17. Failing tests: |
|
Build failed on ROOT-debian10-i386/cxx14. Failing tests: |
Fixes assert in roottest/root/meta/MakeProject/runcms310.C