Opened 10 years ago

Last modified 10 years ago

#8337 closed Bugs

The internal representation of "std::string(this->code()->message())" escapes, but is destroyed when it exits scope. — at Version 1

Reported by: Richard <legalize@…> Owned by: viboes
Milestone: Boost 1.54.0 Component: thread
Version: Boost 1.52.0 Severity: Problem
Keywords: Cc:

Description (last modified by viboes)

Coverity static analysis reported the following problem:

class BOOST_SYMBOL_VISIBLE future_error
     : public std::logic_error
 {
     system::error_code ec_;
 public:
     future_error(system::error_code ec)
     : logic_error(ec.message()),
       ec_(ec)
     {
     }
 
     const system::error_code& code() const BOOST_NOEXCEPT
     {
       return ec_;
     }
     const char* what() const BOOST_THREAD_NOEXCEPT_OR_THROW
     {
 CID 10932 (#2 of 2): Wrapper object use after free (WRAPPER_ESCAPE)1. escape: The internal representation of "std::string(this->code()->message())" escapes, but is destroyed when it exits scope. 
      return code().message().c_str();
     }
 };

Change History (1)

comment:1 by viboes, 10 years ago

Description: modified (diff)
Owner: changed from Anthony Williams to viboes
Status: newassigned

Could you clarify what is the bug?

Note: See TracTickets for help on using tickets.