Author: Pavel Labath Date: 2022-07-12T20:12:22+02:00 New Revision: a72306e202eedaed7c1a25caf4565bf5577110ce
URL: https://github.com/llvm/llvm-project/commit/a72306e202eedaed7c1a25caf4565bf5577110ce DIFF: https://github.com/llvm/llvm-project/commit/a72306e202eedaed7c1a25caf4565bf5577110ce.diff LOG: [lldb] Fix TestDataFormatterLibcxxString broken by D129490 We need to check for the error inside the value object to avoid reading garbage through invalid (target) pointers. Added: Modified: lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp Removed: ################################################################################ diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp index aaf346414d22..3b04b3a1b2ac 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp @@ -725,7 +725,7 @@ static llvm::Optional<std::pair<uint64_t, ValueObjectSP>> ExtractLibcxxStringInfo(ValueObject &valobj) { ValueObjectSP valobj_r_sp = valobj.GetChildMemberWithName(ConstString("__r_"), /*can_create=*/true); - if (!valobj_r_sp) + if (!valobj_r_sp || !valobj_r_sp->GetError().Success()) return {}; // __r_ is a compressed_pair of the actual data and the allocator. The data we _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits