I'm working on some patches to allow dbus-sensors daemons to manage driver binding/unbinding on host power state transitions, which involves an increase in the amount of sensor object creation & destruction at runtime (post initialization), and started seeing some ASAN reports that didn't seem to be coming from my local changes; after some investigation I think there's a latent bug in the existing upstream code that just requires a bit more activity to trigger.
I reduced my local patch to the following, just enabling ASAN and adding a dbus method to trigger a createSensors()
call:
root@romed8hm3-d05099f41e18:~# LD_LIBRARY_PATH=/tmp /tmp/hwmontempsensor
error getting SpecialMode status No route to host
Rebuilding sensors...
...done.
Rebuilding sensors...
...done.
Rebuilding sensors...
...done.
Rebuilding sensors...
...done.
Rebuilding sensors...
...done.
=================================================================
==30937==ERROR: AddressSanitizer: heap-use-after-free on address 0x73d46080 at pc 0x006107f0 bp 0x7ef5e34c sp 0x7ef5e338
READ of size 1 at 0x73d46080 thread T0
#0 0x6107ec in bool __gnu_cxx::__ops::_Iter_equals_val<char const>::operator()<boost::asio::buffers_iterator<boost::asio::const_buffers_1, char> >(boost::asio::buffers_iterator<boost::asio::const_buffers_1, char>) /usr/include/c++/11.3.0/bits/predefined_ops.h:270
#1 0x6107ec in boost::asio::buffers_iterator<boost::asio::const_buffers_1, char> std::__find_if<boost::asio::buffers_iterator<boost::asio::const_buffers_1, char>, __gnu_cxx::__ops::_Iter_equals_val<char const> >(boost::asio::buffers_iterator<boost::asio::const_buffers_1, char>, boost::asio::buffers_iterator<boost::asio::const_buffers_1, char>, __gnu_cxx::__ops::_Iter_equals_val<char const>, std::random_access_iterator_tag) /usr/include/c++/11.3.0/bits/stl_algobase.h:2069
#2 0x6107ec in boost::asio::buffers_iterator<boost::asio::const_buffers_1, char> std::__find_if<boost::asio::buffers_iterator<boost::asio::const_buffers_1, char>, __gnu_cxx::__ops::_Iter_equals_val<char const> >(boost::asio::buffers_iterator<boost::asio::const_buffers_1, char>, boost::asio::buffers_iterator<boost::asio::const_buffers_1, char>, __gnu_cxx::__ops::_Iter_equals_val<char const>) /usr/include/c++/11.3.0/bits/stl_algobase.h:2114
#3 0x6107ec in boost::asio::buffers_iterator<boost::asio::const_buffers_1, char> std::find<boost::asio::buffers_iterator<boost::asio::const_buffers_1, char>, char>(boost::asio::buffers_iterator<boost::asio::const_buffers_1, char>, boost::asio::buffers_iterator<boost::asio::const_buffers_1, char>, char const&) /usr/include/c++/11.3.0/bits/stl_algo.h:3884
#4 0x6107ec in operator() /usr/include/boost/asio/impl/read_until.hpp:874
#5 0x615944 in operator() /usr/include/boost/asio/detail/bind_handler.hpp:289
#6 0x615944 in asio_handler_invoke<boost::asio::detail::binder2<boost::asio::detail::read_until_delim_op_v1<boost::asio::posix::basic_stream_descriptor<>, boost::asio::basic_streambuf_ref<std::allocator<char> >, HwmonTempSensor::setupRead()::<lambda(const boost::system::error_code&, std::size_t)> >, boost::system::error_code, unsigned int> > /usr/include/boost/asio/handler_invoke_hook.hpp:88
#7 0x615944 in invoke<boost::asio::detail::binder2<boost::asio::detail::read_until_delim_op_v1<boost::asio::posix::basic_stream_descriptor<>, boost::asio::basic_streambuf_ref<std::allocator<char> >, HwmonTempSensor::setupRead()::<lambda(const boost::system::error_code&, std::size_t)> >, boost::system::error_code, unsigned int>, HwmonTempSensor::setupRead()::<lambda(const boost::system::error_code&, std::size_t)> > /usr/include/boost/asio/detail/handler_invoke_helpers.hpp:54
#8 0x615944 in asio_handler_invoke<boost::asio::detail::binder2<boost::asio::detail::read_until_delim_op_v1<boost::asio::posix::basic_stream_descriptor<>, boost::asio::basic_streambuf_ref<std::allocator<char> >, HwmonTempSensor::setupRead()::<lambda(const boost::system::error_code&, std::size_t)> >, boost::system::error_code, unsigned int>, boost::asio::posix::basic_stream_descriptor<>, boost::asio::basic_streambuf_ref<std::allocator<char> >, HwmonTempSensor::setupRead()::<lambda(const boost::system::error_code&, std::size_t)> > /usr/include/boost/asio/impl/read_until.hpp:993
#9 0x615944 in invoke<boost::asio::detail::binder2<boost::asio::detail::read_until_delim_op_v1<boost::asio::posix::basic_stream_descriptor<>, boost::asio::basic_streambuf_ref<std::allocator<char> >, HwmonTempSensor::setupRead()::<lambda(const boost::system::error_code&, std::size_t)> >, boost::system::error_code, unsigned int>, boost::asio::detail::read_until_delim_op_v1<boost::asio::posix::basic_stream_descriptor<>, boost::asio::basic_streambuf_ref<std::allocator<char> >, HwmonTempSensor::setupRead()::<lambda(const boost::system::error_code&, std::size_t)> > > /usr/include/boost/asio/detail/handler_invoke_helpers.hpp:54
#10 0x615944 in asio_handler_invoke<boost::asio::detail::binder2<boost::asio::detail::read_until_delim_op_v1<boost::asio::posix::basic_stream_descriptor<>, boost::asio::basic_streambuf_ref<std::allocator<char> >, HwmonTempSensor::setupRead()::<lambda(const boost::system::error_code&, std::size_t)> >, boost::system::error_code, unsigned int>, boost::asio::detail::read_until_delim_op_v1<boost::asio::posix::basic_stream_descriptor<>, boost::asio::basic_streambuf_ref<std::allocator<char> >, HwmonTempSensor::setupRead()::<lambda(const boost::system::error_code&, std::size_t)> >, boost::system::error_code, unsigned int> /usr/include/boost/asio/detail/bind_handler.hpp:344
#11 0x615944 in invoke<boost::asio::detail::binder2<boost::asio::detail::read_until_delim_op_v1<boost::asio::posix::basic_stream_descriptor<>, boost::asio::basic_streambuf_ref<std::allocator<char> >, HwmonTempSensor::setupRead()::<lambda(const boost::system::error_code&, std::size_t)> >, boost::system::error_code, unsigned int>, boost::asio::detail::binder2<boost::asio::detail::read_until_delim_op_v1<boost::asio::posix::basic_stream_descriptor<>, boost::asio::basic_streambuf_ref<std::allocator<char> >, HwmonTempSensor::setupRead()::<lambda(const boost::system::error_code&, std::size_t)> >, boost::system::error_code, unsigned int> > /usr/include/boost/asio/detail/handler_invoke_helpers.hpp:54
#12 0x615944 in complete<boost::asio::detail::binder2<boost::asio::detail::read_until_delim_op_v1<boost::asio::posix::basic_stream_descriptor<>, boost::asio::basic_streambuf_ref<std::allocator<char> >, HwmonTempSensor::setupRead()::<lambda(const boost::system::error_code&, std::size_t)> >, boost::system::error_code, unsigned int>, std::allocator<void> > /usr/include/boost/asio/detail/executor_function.hpp:116
#13 0x613f98 in boost::asio::detail::executor_function::operator()() /usr/include/boost/asio/detail/executor_function.hpp:64
#14 0x613f98 in void boost::asio::asio_handler_invoke<boost::asio::detail::executor_function>(boost::asio::detail::executor_function&, ...) /usr/include/boost/asio/handler_invoke_hook.hpp:88
#15 0x613f98 in void boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::executor_function, boost::asio::detail::executor_function>(boost::asio::detail::executor_function&, boost::asio::detail::executor_function&) /usr/include/boost/asio/detail/handler_invoke_helpers.hpp:54
#16 0x613f98 in void boost::asio::io_context::basic_executor_type<std::allocator<void>, 0u>::dispatch<boost::asio::detail::executor_function, std::allocator<void> >(boost::asio::detail::executor_function&&, std::allocator<void> const&) const /usr/include/boost/asio/impl/io_context.hpp:354
#17 0x613f98 in boost::asio::executor::impl<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0u>, std::allocator<void> >::dispatch(boost::asio::detail::executor_function&&) /usr/include/boost/asio/impl/executor.hpp:93
#18 0x613f98 in dispatch<boost::asio::detail::binder2<boost::asio::detail::read_until_delim_op_v1<boost::asio::posix::basic_stream_descriptor<>, boost::asio::basic_streambuf_ref<std::allocator<char> >, HwmonTempSensor::setupRead()::<lambda(const boost::system::error_code&, std::size_t)> >, boost::system::error_code, unsigned int>, std::allocator<void> > /usr/include/boost/asio/impl/executor.hpp:262
#19 0x613f98 in dispatch<boost::asio::detail::binder2<boost::asio::detail::read_until_delim_op_v1<boost::asio::posix::basic_stream_descriptor<>, boost::asio::basic_streambuf_ref<std::allocator<char> >, HwmonTempSensor::setupRead()::<lambda(const boost::system::error_code&, std::size_t)> >, boost::system::error_code, unsigned int>, boost::asio::detail::read_until_delim_op_v1<boost::asio::posix::basic_stream_descriptor<>, boost::asio::basic_streambuf_ref<std::allocator<char> >, HwmonTempSensor::setupRead()::<lambda(const boost::system::error_code&, std::size_t)> > > /usr/include/boost/asio/detail/handler_work.hpp:281
#20 0x613f98 in complete<boost::asio::detail::binder2<boost::asio::detail::read_until_delim_op_v1<boost::asio::posix::basic_stream_descriptor<>, boost::asio::basic_streambuf_ref<std::allocator<char> >, HwmonTempSensor::setupRead()::<lambda(const boost::system::error_code&, std::size_t)> >, boost::system::error_code, unsigned int> > /usr/include/boost/asio/detail/handler_work.hpp:516
#21 0x613f98 in do_complete /usr/include/boost/asio/detail/io_uring_descriptor_read_op.hpp:169
#22 0x4f57d8 in boost::asio::detail::scheduler_operation::complete(void*, boost::system::error_code const&, unsigned int) /usr/include/boost/asio/detail/scheduler_operation.hpp:40
#23 0x4f57d8 in boost::asio::detail::io_uring_service::io_queue::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned int) /usr/include/boost/asio/detail/impl/io_uring_service.ipp:864
#24 0x4f57d8 in boost::asio::detail::io_uring_service::io_queue::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned int) /usr/include/boost/asio/detail/impl/io_uring_service.ipp:855
#25 0x4de56c in boost::asio::detail::scheduler_operation::complete(void*, boost::system::error_code const&, unsigned int) /usr/include/boost/asio/detail/scheduler_operation.hpp:40
#26 0x4de56c in boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/include/boost/asio/detail/impl/scheduler.ipp:492
#27 0x4de56c in boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/include/boost/asio/detail/impl/scheduler.ipp:210
#28 0x4de56c in boost::asio::io_context::run() /usr/include/boost/asio/impl/io_context.ipp:63
#29 0x4de56c in main ../../../../../../workspace/sources/dbus-sensors/src/HwmonTempMain.cpp:596
#30 0x765c18cc (/lib/libc.so.6+0x218cc)
#31 0x765c19d4 in __libc_start_main (/lib/libc.so.6+0x219d4)
0x73d46080 is located 0 bytes inside of 512-byte region [0x73d46080,0x73d46280)
freed by thread T0 here:
#0 0x76add800 in operator delete(void*, unsigned int) (/tmp/libasan.so.6+0xbd800)
#1 0x5d89dc in __gnu_cxx::new_allocator<char>::deallocate(char*, unsigned int) /usr/include/c++/11.3.0/ext/new_allocator.h:145
#2 0x5d89dc in std::allocator<char>::deallocate(char*, unsigned int) /usr/include/c++/11.3.0/bits/allocator.h:199
#3 0x5d89dc in std::allocator_traits<std::allocator<char> >::deallocate(std::allocator<char>&, char*, unsigned int) /usr/include/c++/11.3.0/bits/alloc_traits.h:496
#4 0x5d89dc in std::_Vector_base<char, std::allocator<char> >::_M_deallocate(char*, unsigned int) /usr/include/c++/11.3.0/bits/stl_vector.h:354
#5 0x5d89dc in std::_Vector_base<char, std::allocator<char> >::~_Vector_base() /usr/include/c++/11.3.0/bits/stl_vector.h:335
#6 0x5d89dc in std::vector<char, std::allocator<char> >::~vector() /usr/include/c++/11.3.0/bits/stl_vector.h:683
#7 0x5d89dc in boost::asio::basic_streambuf<std::allocator<char> >::~basic_streambuf() /usr/include/boost/asio/basic_streambuf.hpp:111
#8 0x5d89dc in HwmonTempSensor::~HwmonTempSensor() ../../../../../../workspace/sources/dbus-sensors/src/HwmonTempSensor.cpp:89
#9 0x524e60 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/include/c++/11.3.0/bits/shared_ptr_base.h:168
#10 0x52a4bc in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /usr/include/c++/11.3.0/bits/shared_ptr_base.h:705
#11 0x52a4bc in std::__shared_ptr<HwmonTempSensor, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /usr/include/c++/11.3.0/bits/shared_ptr_base.h:1154
#12 0x52a4bc in std::__shared_ptr<HwmonTempSensor, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<HwmonTempSensor, (__gnu_cxx::_Lock_policy)2>&&) /usr/include/c++/11.3.0/bits/shared_ptr_base.h:1250
#13 0x52a4bc in std::shared_ptr<HwmonTempSensor>::operator=(std::shared_ptr<HwmonTempSensor>&&) /usr/include/c++/11.3.0/bits/shared_ptr.h:385
#14 0x52a4bc in operator() ../../../../../../workspace/sources/dbus-sensors/src/HwmonTempMain.cpp:407
#15 0x5c8d80 in std::function<void (sdbusplus::message::message&)>::operator()(sdbusplus::message::message&) const /usr/include/c++/11.3.0/bits/std_function.h:590
#16 0x5c8d80 in GetSensorConfiguration::~GetSensorConfiguration() ../../../../../../workspace/sources/dbus-sensors/include/Utils.hpp:321
#17 0x5c8d80 in void std::destroy_at<GetSensorConfiguration>(GetSensorConfiguration*) /usr/include/c++/11.3.0/bits/stl_construct.h:88
#18 0x5c8d80 in void std::allocator_traits<std::allocator<GetSensorConfiguration> >::destroy<GetSensorConfiguration>(std::allocator<GetSensorConfiguration>&, GetSensorConfiguration*) /usr/include/c++/11.3.0/bits/alloc_traits.h:537
#19 0x5c8d80 in std::_Sp_counted_ptr_inplace<GetSensorConfiguration, std::allocator<GetSensorConfiguration>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() /usr/include/c++/11.3.0/bits/shared_ptr_base.h:528
#20 0x524e60 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/include/c++/11.3.0/bits/shared_ptr_base.h:168
#21 0x557618 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /usr/include/c++/11.3.0/bits/shared_ptr_base.h:705
#22 0x557618 in std::__shared_ptr<GetSensorConfiguration, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /usr/include/c++/11.3.0/bits/shared_ptr_base.h:1154
#23 0x557618 in std::shared_ptr<GetSensorConfiguration>::~shared_ptr() /usr/include/c++/11.3.0/bits/shared_ptr.h:122
#24 0x557618 in GetSensorConfiguration::getPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)::{lambda(boost::system::error_code, boost::container::flat_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::variant<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long long, unsigned long long, double, int, unsigned int, short, unsigned short, unsigned char, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, void>&)#1}::~flat_map() ../../../../../../workspace/sources/dbus-sensors/include/Utils.hpp:227
#25 0x557618 in sdbusplus::asio::connection::async_method_call_timed<GetSensorConfiguration::getPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)::{lambda(boost::system::error_code, boost::container::flat_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::variant<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long long, unsigned long long, double, int, unsigned int, short, unsigned short, unsigned char, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, void>&)#1}, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(GetSensorConfiguration::getPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)::{lambda(boost::system::error_code, boost::container::flat_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::variant<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long long, unsigned long long, double, int, unsigned int, short, unsigned short, unsigned char, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, void>&)#1}&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(boost::system::error_code, sdbusplus::message::message&)#2}::~message() /usr/include/sdbusplus/asio/connection.hpp:144
#26 0x557618 in sdbusplus::asio::detail::async_send_handler<sdbusplus::asio::connection::async_method_call_timed<GetSensorConfiguration::getPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)::{lambda(boost::system::error_code, boost::container::flat_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::variant<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long long, unsigned long long, double, int, unsigned int, short, unsigned short, unsigned char, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, void>&)#1}, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(GetSensorConfiguration::getPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)::{lambda(boost::system::error_code, boost::container::flat_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::variant<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long long, unsigned long long, double, int, unsigned int, short, unsigned short, unsigned char, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, void>&)#1}&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(boost::system::error_code, sdbusplus::message::message&)#2}>::~async_send_handler() /usr/include/sdbusplus/asio/detail/async_send_handler.hpp:31
#27 0x557618 in std::default_delete<sdbusplus::asio::detail::async_send_handler<sdbusplus::asio::connection::async_method_call_timed<GetSensorConfiguration::getPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)::{lambda(boost::system::error_code, boost::container::flat_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::variant<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long long, unsigned long long, double, int, unsigned int, short, unsigned short, unsigned char, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, void>&)#1}, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(GetSensorConfiguration::getPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)::{lambda(boost::system::error_code, boost::container::flat_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::variant<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long long, unsigned long long, double, int, unsigned int, short, unsigned short, unsigned char, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, void>&)#1}&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(boost::system::error_code, sdbusplus::message::message&)#2}> >::operator()(sdbusplus::asio::detail::async_send_handler<sdbusplus::asio::connection::async_method_call_timed<GetSensorConfiguration::getPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)::{lambda(boost::system::error_code, boost::container::flat_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::variant<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long long, unsigned long long, double, int, unsigned int, short, unsigned short, unsigned char, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, void>&)#1}, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(GetSensorConfiguration::getPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)::{lambda(boost::system::error_code, boost::container::flat_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::variant<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long long, unsigned long long, double, int, unsigned int, short, unsigned short, unsigned char, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, void>&)#1}&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(boost::system::error_code, sdbusplus::message::message&)#2}>*) const /usr/include/c++/11.3.0/bits/unique_ptr.h:85
#28 0x557618 in std::default_delete<sdbusplus::asio::detail::async_send_handler<sdbusplus::asio::connection::async_method_call_timed<GetSensorConfiguration::getPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)::{lambda(boost::system::error_code, boost::container::flat_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::variant<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long long, unsigned long long, double, int, unsigned int, short, unsigned short, unsigned char, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, void>&)#1}, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(GetSensorConfiguration::getPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)::{lambda(boost::system::error_code, boost::container::flat_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::variant<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long long, unsigned long long, double, int, unsigned int, short, unsigned short, unsigned char, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, void>&)#1}&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(boost::system::error_code, sdbusplus::message::message&)#2}> >::operator()(sdbusplus::asio::detail::async_send_handler<sdbusplus::asio::connection::async_method_call_timed<GetSensorConfiguration::getPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)::{lambda(boost::system::error_code, boost::container::flat_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::variant<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long long, unsigned long long, double, int, unsigned int, short, unsigned short, unsigned char, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, void>&)#1}, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(GetSensorConfiguration::getPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)::{lambda(boost::system::error_code, boost::container::flat_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::variant<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long long, unsigned long long, double, int, unsigned int, short, unsigned short, unsigned char, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, void>&)#1}&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(boost::system::error_code, sdbusplus::message::message&)#2}>*) const /usr/include/c++/11.3.0/bits/unique_ptr.h:79
#29 0x557618 in std::unique_ptr<sdbusplus::asio::detail::async_send_handler<sdbusplus::asio::connection::async_method_call_timed<GetSensorConfiguration::getPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)::{lambda(boost::system::error_code, boost::container::flat_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::variant<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long long, unsigned long long, double, int, unsigned int, short, unsigned short, unsigned char, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, void>&)#1}, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(GetSensorConfiguration::getPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)::{lambda(boost::system::error_code, boost::container::flat_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::variant<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long long, unsigned long long, double, int, unsigned int, short, unsigned short, unsigned char, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, void>&)#1}&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(boost::system::error_code, sdbusplus::message::message&)#2}>, std::default_delete<sdbusplus::asio::detail::async_send_handler<sdbusplus::asio::connection::async_method_call_timed<GetSensorConfiguration::getPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)::{lambda(boost::system::error_code, boost::container::flat_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::variant<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long long, unsigned long long, double, int, unsigned int, short, unsigned short, unsigned char, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, void>&)#1}, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(GetSensorConfiguration::getPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)::{lambda(boost::system::error_code, boost::container::flat_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::variant<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long long, unsigned long long, double, int, unsigned int, short, unsigned short, unsigned char, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, void>&)#1}&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(boost::system::error_code, sdbusplus::message::message&)#2}> > >::~unique_ptr() /usr/include/c++/11.3.0/bits/unique_ptr.h:361
#30 0x557618 in sdbusplus::asio::detail::async_send_handler<sdbusplus::asio::connection::async_method_call_timed<GetSensorConfiguration::getPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)::{lambda(boost::system::error_code, boost::container::flat_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::variant<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long long, unsigned long long, double, int, unsigned int, short, unsigned short, unsigned char, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, void>&)#1}, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(GetSensorConfiguration::getPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)::{lambda(boost::system::error_code, boost::container::flat_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::variant<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long long, unsigned long long, double, int, unsigned int, short, unsigned short, unsigned char, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, void>&)#1}&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(boost::system::error_code, sdbusplus::message::message&)#2}>::callback(sd_bus_message*, void*, sd_bus_error*) /usr/include/sdbusplus/asio/detail/async_send_handler.hpp:66
previously allocated by thread T0 here:
#0 0x76adc784 in operator new(unsigned int) (/tmp/libasan.so.6+0xbc784)
#1 0x5ea398 in __gnu_cxx::new_allocator<char>::allocate(unsigned int, void const*) /usr/include/c++/11.3.0/ext/new_allocator.h:127
#2 0x5ea398 in std::allocator<char>::allocate(unsigned int) /usr/include/c++/11.3.0/bits/allocator.h:185
#3 0x5ea398 in std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned int) /usr/include/c++/11.3.0/bits/alloc_traits.h:464
#4 0x5ea398 in std::_Vector_base<char, std::allocator<char> >::_M_allocate(unsigned int) /usr/include/c++/11.3.0/bits/stl_vector.h:346
#5 0x5ea398 in std::_Vector_base<char, std::allocator<char> >::_M_allocate(unsigned int) /usr/include/c++/11.3.0/bits/stl_vector.h:343
#6 0x5ea398 in std::vector<char, std::allocator<char> >::_M_default_append(unsigned int) /usr/include/c++/11.3.0/bits/vector.tcc:635
#7 0x5f82b4 in std::vector<char, std::allocator<char> >::resize(unsigned int) /usr/include/c++/11.3.0/bits/stl_vector.h:940
#8 0x5f82b4 in boost::asio::basic_streambuf<std::allocator<char> >::reserve(unsigned int) /usr/include/boost/asio/basic_streambuf.hpp:335
#9 0x60ca90 in boost::asio::basic_streambuf<std::allocator<char> >::prepare(unsigned int) /usr/include/boost/asio/basic_streambuf.hpp:217
#10 0x60ca90 in boost::asio::basic_streambuf_ref<std::allocator<char> >::prepare(unsigned int) /usr/include/boost/asio/basic_streambuf.hpp:428
#11 0x60ca90 in operator() /usr/include/boost/asio/impl/read_until.hpp:910
#12 0x5e9668 in operator()<HwmonTempSensor::setupRead()::<lambda(const boost::system::error_code&, std::size_t)>, boost::asio::basic_streambuf_ref<std::allocator<char> > > /usr/include/boost/asio/impl/read_until.hpp:1044
#13 0x5e9668 in initiate<boost::asio::detail::initiate_async_read_until_delim_v1<boost::asio::posix::basic_stream_descriptor<> >, HwmonTempSensor::setupRead()::<lambda(const boost::system::error_code&, std::size_t)>, boost::asio::basic_streambuf_ref<std::allocator<char> >, char&> /usr/include/boost/asio/async_result.hpp:482
#14 0x5e9668 in async_initiate<HwmonTempSensor::setupRead()::<lambda(const boost::system::error_code&, std::size_t)>, void(boost::system::error_code, unsigned int), boost::asio::detail::initiate_async_read_until_delim_v1<boost::asio::posix::basic_stream_descriptor<> >, boost::asio::basic_streambuf_ref<std::allocator<char> >, char&> /usr/include/boost/asio/async_result.hpp:862
#15 0x5e9668 in async_read_until<boost::asio::posix::basic_stream_descriptor<>, boost::asio::basic_streambuf_ref<std::allocator<char> >, HwmonTempSensor::setupRead()::<lambda(const boost::system::error_code&, std::size_t)> > /usr/include/boost/asio/impl/read_until.hpp:1090
#16 0x5e9668 in async_read_until<boost::asio::posix::basic_stream_descriptor<>, std::allocator<char>, HwmonTempSensor::setupRead()::<lambda(const boost::system::error_code&, std::size_t)> > /usr/include/boost/asio/impl/read_until.hpp:2028
#17 0x5e9668 in HwmonTempSensor::setupRead() ../../../../../../workspace/sources/dbus-sensors/src/HwmonTempSensor.cpp:113
#18 0x5ea040 in operator() ../../../../../../workspace/sources/dbus-sensors/src/HwmonTempSensor.cpp:138
#19 0x5f7890 in operator() /usr/include/boost/asio/detail/bind_handler.hpp:171
#20 0x5f7890 in asio_handler_invoke<boost::asio::detail::binder1<HwmonTempSensor::restartRead()::<lambda(const boost::system::error_code&)>, boost::system::error_code> > /usr/include/boost/asio/handler_invoke_hook.hpp:88
#21 0x5f7890 in invoke<boost::asio::detail::binder1<HwmonTempSensor::restartRead()::<lambda(const boost::system::error_code&)>, boost::system::error_code>, HwmonTempSensor::restartRead()::<lambda(const boost::system::error_code&)> > /usr/include/boost/asio/detail/handler_invoke_helpers.hpp:54
#22 0x5f7890 in asio_handler_invoke<boost::asio::detail::binder1<HwmonTempSensor::restartRead()::<lambda(const boost::system::error_code&)>, boost::system::error_code>, HwmonTempSensor::restartRead()::<lambda(const boost::system::error_code&)>, boost::system::error_code> /usr/include/boost/asio/detail/bind_handler.hpp:224
#23 0x5f7890 in invoke<boost::asio::detail::binder1<HwmonTempSensor::restartRead()::<lambda(const boost::system::error_code&)>, boost::system::error_code>, boost::asio::detail::binder1<HwmonTempSensor::restartRead()::<lambda(const boost::system::error_code&)>, boost::system::error_code> > /usr/include/boost/asio/detail/handler_invoke_helpers.hpp:54
#24 0x5f7890 in complete<boost::asio::detail::binder1<HwmonTempSensor::restartRead()::<lambda(const boost::system::error_code&)>, boost::system::error_code>, std::allocator<void> > /usr/include/boost/asio/detail/executor_function.hpp:116
#25 0x600e1c in boost::asio::detail::executor_function::operator()() /usr/include/boost/asio/detail/executor_function.hpp:64
#26 0x600e1c in void boost::asio::asio_handler_invoke<boost::asio::detail::executor_function>(boost::asio::detail::executor_function&, ...) /usr/include/boost/asio/handler_invoke_hook.hpp:88
#27 0x600e1c in void boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::executor_function, boost::asio::detail::executor_function>(boost::asio::detail::executor_function&, boost::asio::detail::executor_function&) /usr/include/boost/asio/detail/handler_invoke_helpers.hpp:54
#28 0x600e1c in void boost::asio::io_context::basic_executor_type<std::allocator<void>, 0u>::dispatch<boost::asio::detail::executor_function, std::allocator<void> >(boost::asio::detail::executor_function&&, std::allocator<void> const&) const /usr/include/boost/asio/impl/io_context.hpp:354
#29 0x600e1c in boost::asio::executor::impl<boost::asio::io_context::basic_executor_type<std::allocator<void>, 0u>, std::allocator<void> >::dispatch(boost::asio::detail::executor_function&&) /usr/include/boost/asio/impl/executor.hpp:93
#30 0x600e1c in dispatch<boost::asio::detail::binder1<HwmonTempSensor::restartRead()::<lambda(const boost::system::error_code&)>, boost::system::error_code>, std::allocator<void> > /usr/include/boost/asio/impl/executor.hpp:262
#31 0x600e1c in dispatch<boost::asio::detail::binder1<HwmonTempSensor::restartRead()::<lambda(const boost::system::error_code&)>, boost::system::error_code>, HwmonTempSensor::restartRead()::<lambda(const boost::system::error_code&)> > /usr/include/boost/asio/detail/handler_work.hpp:281
#32 0x600e1c in complete<boost::asio::detail::binder1<HwmonTempSensor::restartRead()::<lambda(const boost::system::error_code&)>, boost::system::error_code> > /usr/include/boost/asio/detail/handler_work.hpp:516
#33 0x600e1c in do_complete /usr/include/boost/asio/detail/wait_handler.hpp:76
#34 0x4de56c in boost::asio::detail::scheduler_operation::complete(void*, boost::system::error_code const&, unsigned int) /usr/include/boost/asio/detail/scheduler_operation.hpp:40
#35 0x4de56c in boost::asio::detail::scheduler::do_run_one(boost::asio::detail::conditionally_enabled_mutex::scoped_lock&, boost::asio::detail::scheduler_thread_info&, boost::system::error_code const&) /usr/include/boost/asio/detail/impl/scheduler.ipp:492
#36 0x4de56c in boost::asio::detail::scheduler::run(boost::system::error_code&) /usr/include/boost/asio/detail/impl/scheduler.ipp:210
#37 0x4de56c in boost::asio::io_context::run() /usr/include/boost/asio/impl/io_context.ipp:63
#38 0x4de56c in main ../../../../../../workspace/sources/dbus-sensors/src/HwmonTempMain.cpp:596
#39 0x765c18cc (/lib/libc.so.6+0x218cc)
#40 0x765c19d4 in __libc_start_main (/lib/libc.so.6+0x219d4)
SUMMARY: AddressSanitizer: heap-use-after-free /usr/include/c++/11.3.0/bits/predefined_ops.h:270 in bool __gnu_cxx::__ops::_Iter_equals_val<char const>::operator()<boost::asio::buffers_iterator<boost::asio::const_buffers_1, char> >(boost::asio::buffers_iterator<boost::asio::const_buffers_1, char>)
Shadow bytes around the buggy address:
0x2e7a8bc0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x2e7a8bd0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x2e7a8be0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x2e7a8bf0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x2e7a8c00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
=>0x2e7a8c10:[fd]fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x2e7a8c20: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x2e7a8c30: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x2e7a8c40: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x2e7a8c50: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x2e7a8c60: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==30937==ABORTING