[Boost-bugs] [Boost C++ Libraries] #4685: boost::interprocess::winapi::get_last_bootup_time( std::wstring&)

Subject: [Boost-bugs] [Boost C++ Libraries] #4685: boost::interprocess::winapi::get_last_bootup_time( std::wstring&)
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2010-09-26 02:16:40

#4685: boost::interprocess::winapi::get_last_bootup_time( std::wstring&)
 Reporter: Jim Bell <jim@…> | Owner: igaztanaga
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: interprocess
  Version: Boost 1.44.0 | Severity: Problem
 Keywords: |
 boost::interprocess::winapi::get_last_bootup_time( std::wstring& strValue

 This line is wrong and is crashing most of the win32 regression tests
 (both release and trunk):

 strValue doesn't have '+', so .find() returns std::wstring::npos, but that
 causes std::wstring::erase() to crash. npos isn't a valid parameter to
 erase() and will cause an out_of_range exception to be thrown.

 I think this is causing many regression test failures both the release and
 trunk branches for win32.

 The fix would be to split it out:

 std::wstring::size_type plusPos = strValue.find(L'+');
 if (plusPos != std::wstring::npos)

 I can't speak to why you're looking for a '+' and the significance of not
 finding it.

Ticket URL: <https://svn.boost.org/trac/boost/ticket/4685>
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 : 2017-02-16 18:50:04 UTC