Re: [Boost-bugs] [Boost C++ Libraries] #13562: Missing null pointer check in compensating_work_started

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #13562: Missing null pointer check in compensating_work_started
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2018-05-09 09:28:41


#13562: Missing null pointer check in compensating_work_started
-------------------------------+----------------------------
  Reporter: michael.lindig@… | Owner: chris_kohlhoff
      Type: Bugs | Status: new
 Milestone: To Be Determined | Component: asio
   Version: Boost 1.66.0 | Severity: Problem
Resolution: | Keywords:
-------------------------------+----------------------------

Comment (by Vladimir Shapranov <equidamoid@…>):

 Just found this ticket while googling for a crash I'm currently trying to
 fix:

 {{{
 (gdb) bt
 #0 0x00d1d4e8 in
 boost::asio::detail::scheduler::compensating_work_started (this=0x1c02f90)
 at include/boost/asio/detail/impl/scheduler.ipp:275
 #1 0x00d1d0bc in
 boost::asio::detail::epoll_reactor::perform_io_cleanup_on_block_exit::~perform_io_cleanup_on_block_exit
 (this=0x618feca4, __in_chrg=<optimized out>) at
 include/boost/asio/detail/impl/epoll_reactor.ipp:712
 #2 0x00d1d334 in
 boost::asio::detail::epoll_reactor::descriptor_state::perform_io
 (this=0x1c05ef0, events=1) at
 include/boost/asio/detail/impl/epoll_reactor.ipp:730
 #3 0x00d1d3b8 in
 boost::asio::detail::epoll_reactor::descriptor_state::do_complete
 (owner=0x1c02f90, base=0x1c05ef0, ec=..., bytes_transferred=1) at
 include/boost/asio/detail/impl/epoll_reactor.ipp:774
 #4 0x76c2e370 in boost::asio::detail::scheduler_operation::complete
 (bytes_transferred=1, ec=..., owner=0x1c02f90, this=<optimized out>) at
 include/boost/asio/detail/scheduler_operation.hpp:40
 #5 boost::asio::detail::scheduler::do_run_one (ec=..., this_thread=...,
 lock=..., this=0x1c02f90) at
 include/boost/asio/detail/impl/scheduler.ipp:401
 #6 boost::asio::detail::scheduler::run (ec=..., this=0x1c02f90) at
 include/boost/asio/detail/impl/scheduler.ipp:154
 #7 boost::asio::io_context::run (this=<optimized out>) at
 include/boost/asio/impl/io_context.ipp:62
 #
 }}}

 The relevant TLS entry is null:
 {{{
 (gdb) print
 boost::asio::detail::call_stack<boost::asio::detail::thread_context,
 boost::asio::detail::thread_info_base>::top_.tss_key_
 $1 = 8
 (gdb) print *((struct pthread*)pthread_self())->specific_at_32
 $2 = {0x618ff42c, 0x0 <repeats 31 times>}
 }}}

 Reproduces when an executable linked against multiple shared libraries
 that are linked against static boost.

-- 
Ticket URL: <https://svn.boost.org/trac10/ticket/13562#comment:1>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2018-05-09 09:35:50 UTC