Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Workaround false alarm stack-use-after-scope from Asan with operator<<.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Tue, 4 May 2021 07:19:13 +0000 (09:19 +0200)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Tue, 4 May 2021 12:15:35 +0000 (14:15 +0200)
commite81556ea5cd06eb03b103fbd1bcdd64a33b01086
treed78c4c911ebdd3fd1ee69128df655e2ae71c314a
parent12ff962f066e304dbaa22cafcd6d5c7adb67c33c
Workaround false alarm stack-use-after-scope from Asan with operator<<.

Seen with tesh-s4u-activity-lifecycle:

==3411378==ERROR: AddressSanitizer: stack-use-after-scope on address 0x7fd4787b5f60 at pc 0x7fd4869e2acb bp 0x7fd4787b5530 sp 0x7fd4787b4ce0
READ of size 5 at 0x7fd4787b5f60 thread T0
    #0 0x7fd4869e2aca in printf_common ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors_format.inc:490
    #1 0x7fd4869e4115 in __interceptor_vsnprintf ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:1647
    #2 0x7fd4858f932e  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xea32e)
    #3 0x7fd4859272eb in std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x1182eb)
    #4 0x7fd4859347b9 in std::ostream& std::ostream::_M_insert<double>(double) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x1257b9)
    #5 0x55a66a474e0a in std::ostream::operator<<(double) /usr/include/c++/10/ostream:221
    #6 0x55a66a474e0a in Catch::ReusableStringStream& Catch::ReusableStringStream::operator<< <double>(double const&) ../src/include/catch.hpp:1449
    #7 0x55a66a474e0a in Catch::MessageBuilder& Catch::MessageBuilder::operator<< <double>(double const&) ../src/include/catch.hpp:2632
    #8 0x55a66a474e0a in bool tester_wait<0, boost::intrusive_ptr<simgrid::s4u::Exec> >(boost::intrusive_ptr<simgrid::s4u::Exec> const&) ../teshsuite/s4u/activity-lifecycle/testing_test-wait.cpp:44
    #9 0x55a66a63f0af in operator() ../teshsuite/s4u/activity-lifecycle/testing_test-wait.cpp:129
    #10 0x7fd485d7bd51 in std::function<void ()>::operator()() const /usr/include/c++/10/bits/std_function.h:622
    #11 0x7fd485d7bd51 in simgrid::kernel::context::Context::operator()() const ../src/kernel/context/Context.hpp:65
    #12 0x7fd485d7bd51 in smx_ctx_wrapper ../src/kernel/context/ContextSwapped.cpp:51
    #13 0x7fd485e09e48 in simgrid::kernel::context::BoostContext::wrapper(boost::context::detail::transfer_t) ../src/kernel/context/ContextBoost.cpp:49
    #14 0x7fd4854be19e in make_fcontext (/usr/lib/x86_64-linux-gnu/libboost_context.so.1.74.0+0x119e)
teshsuite/s4u/activity-lifecycle/testing_test-wait.cpp