xgupta created this revision. xgupta added a reviewer: DavidSpickett. Herald added a project: All. xgupta requested review of this revision. Herald added a project: LLDB. Herald added a subscriber: lldb-commits.
The issue is that the SyntheticChildrenFrontEnd constructor is being called with the dereferenced valobj_sp pointer, before the valobj_sp pointer is verified to be non-null inside the body of the constructor function. To fix this issue, we have move the call to the SyntheticChildrenFrontEnd constructor to after the null check for valobj_sp in the constructor function body, so that it will only be called if valobj_sp is non-null. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D142341 Files: lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp Index: lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp =================================================================== --- lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp +++ lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp @@ -220,8 +220,9 @@ lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEnd:: LibCxxMapIteratorSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp) - : SyntheticChildrenFrontEnd(*valobj_sp), m_pair_ptr(), m_pair_sp() { + : m_pair_ptr(), m_pair_sp() { if (valobj_sp) + SyntheticChildrenFrontEnd(*valobj_sp); Update(); }
Index: lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp =================================================================== --- lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp +++ lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp @@ -220,8 +220,9 @@ lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEnd:: LibCxxMapIteratorSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp) - : SyntheticChildrenFrontEnd(*valobj_sp), m_pair_ptr(), m_pair_sp() { + : m_pair_ptr(), m_pair_sp() { if (valobj_sp) + SyntheticChildrenFrontEnd(*valobj_sp); Update(); }
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits