Author: gclayton Date: Thu Aug 13 18:16:15 2015 New Revision: 244984 URL: http://llvm.org/viewvc/llvm-project?rev=244984&view=rev Log: Don't crash when we have a .a file that contains an object with a 16 character name. Any calls to std::string::erase must be bounds checked.
<rdar://problem/22260988> Modified: lldb/trunk/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp Modified: lldb/trunk/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp?rev=244984&r1=244983&r2=244984&view=diff ============================================================================== --- lldb/trunk/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp (original) +++ lldb/trunk/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp Thu Aug 13 18:16:15 2015 @@ -105,7 +105,9 @@ ObjectContainerBSDArchive::Object::Extra { // Strip off any spaces (if the object file name contains spaces it // will use the extended format above). - str.erase (str.find(' ')); + const size_t space_pos = str.find(' '); + if (space_pos != std::string::npos) + str.erase (space_pos); ar_name.SetCString(str.c_str()); } _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits