Author: tberghammer
Date: Mon Sep 14 10:44:29 2015
New Revision: 247571

URL: http://llvm.org/viewvc/llvm-project?rev=247571&view=rev
Log:
Fix a possible SEGV in SymbolFileDWARF

The iterator pointing to an element of a dense map was used after
the element from was removed from the map what isn't guaranteed to be
valid at that time.

Modified:
    lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp

Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp?rev=247571&r1=247570&r2=247571&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp (original)
+++ lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp Mon Sep 14 
10:44:29 2015
@@ -1513,15 +1513,16 @@ SymbolFileDWARF::CompleteType (CompilerT
         // We have already resolved this type...
         return true;
     }
+
+    DWARFDebugInfo* debug_info = DebugInfo();
+    DWARFDIE dwarf_die = debug_info->GetDIE(die_it->getSecond());
+
     // Once we start resolving this type, remove it from the forward 
declaration
     // map in case anyone child members or other types require this type to 
get resolved.
     // The type will get resolved when all of the calls to 
SymbolFileDWARF::ResolveClangOpaqueTypeDefinition
     // are done.
-    GetForwardDeclClangTypeToDie().erase 
(clang_type_no_qualifiers.GetOpaqueQualType());
+    GetForwardDeclClangTypeToDie().erase (die_it);
 
-    DWARFDebugInfo* debug_info = DebugInfo();
-    
-    DWARFDIE dwarf_die = debug_info->GetDIE(die_it->getSecond());
     Type *type = GetDIEToType().lookup (dwarf_die.GetDIE());
 
     Log *log 
(LogChannelDWARF::GetLogIfAny(DWARF_LOG_DEBUG_INFO|DWARF_LOG_TYPE_COMPLETION));


_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to