Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[io] Protect out-of-bounds access in R__WriteDestructorBody: #5642

Conversation

Axel-Naumann
Copy link
Member

@Axel-Naumann Axel-Naumann commented May 18, 2020

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.
#3  0x00007ffff78c7c11 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned long) () from /lib64/libstdc++.so.6
#4  0x00007ffff67fb9c3 in R__WriteDestructorBody (file=0x1e01c10, next=...)
    at /mnt/build/wsincrmaster/LABEL/ROOT-fedora29/SPEC/python3/root/io/io/src/TStreamerInfo.cxx:3531
#5  0x00007ffff67fcfcf in TStreamerInfo::GenerateDeclaration (this=0x2b1e950, fp=0x1d7ddc0, sfp=0x1e01c10,
    subClasses=0x7fffffff8db0, top=true)
    at /mnt/build/wsincrmaster/LABEL/ROOT-fedora29/SPEC/python3/root/io/io/src/TStreamerInfo.cxx:3772
#6  0x00007ffff67fe2bf in TStreamerInfo::GenerateHeaderFile (this=0x2b1e950, dirname=0x7fffffff92d9 "cms310",
    subClasses=0x7fffffff8db0, extrainfos=0x7fffffff9210)
    at /mnt/build/wsincrmaster/LABEL/ROOT-fedora29/SPEC/python3/root/io/io/src/TStreamerInfo.cxx:3976
#7  0x00007ffff67a99bf in TFile::MakeProject (this=0x158e280, dirname=0x7ffff793204c "cms310", option=0x7ffff7932055 "RECREATE+")
    at /mnt/build/wsincrmaster/LABEL/ROOT-fedora29/SPEC/python3/root/io/io/src/TFile.cxx:2843

@Axel-Naumann Axel-Naumann requested a review from pcanal as a code owner May 18, 2020 10:25
@Axel-Naumann Axel-Naumann self-assigned this May 18, 2020
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>", ""}
```
@phsft-bot
Copy link
Collaborator

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos7-multicore/default, ROOT-fedora29/python3, ROOT-fedora30/cxx14, ROOT-fedora31/noimt, ROOT-ubuntu16/nortcxxmod, mac1015/cxx17, windows10/cxx14
How to customize builds

@Axel-Naumann Axel-Naumann force-pushed the TStreamerInfoWriteDtorBody-MemError branch from 0167a18 to 3cc128d Compare May 18, 2020 10:27
@phsft-bot
Copy link
Collaborator

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos7-multicore/default, ROOT-fedora29/python3, ROOT-fedora30/cxx14, ROOT-fedora31/noimt, ROOT-ubuntu16/nortcxxmod, mac1015/cxx17, windows10/cxx14
How to customize builds

1 similar comment
@phsft-bot
Copy link
Collaborator

Build failed on mac1015/cxx17.
Running on macphsft20.dyndns.cern.ch:/Users/sftnight/build/workspace/root-pullrequests-build
See cdash.
See console output.

Failing tests:

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-debian10-i386/cxx14.
Running on pcepsft10.dyndns.cern.ch:/build/workspace/root-pullrequests-build
See cdash.
See console output.

Failing tests:

@Axel-Naumann Axel-Naumann merged commit 97c62d4 into root-project:master May 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants