浏览代码

LibDebug: Allow DWARF compilation unit header version <= 4

I think this is okay, the main thing to protect against is new versions
of the format that we don't know about yet.

This happens because an .S file compiled into libc.so has version 2
instead of version 4 like everything else.

Fixes #4491.
Andreas Kling 4 年之前
父节点
当前提交
75da835ffb
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      Libraries/LibDebug/Dwarf/DwarfInfo.cpp

+ 1 - 1
Libraries/LibDebug/Dwarf/DwarfInfo.cpp

@@ -60,7 +60,7 @@ void DwarfInfo::populate_compilation_units()
 
         stream >> Bytes { &compilation_unit_header, sizeof(compilation_unit_header) };
         ASSERT(compilation_unit_header.address_size == sizeof(u32));
-        ASSERT(compilation_unit_header.version == 4);
+        ASSERT(compilation_unit_header.version <= 4);
 
         u32 length_after_header = compilation_unit_header.length - (sizeof(CompilationUnitHeader) - offsetof(CompilationUnitHeader, version));
         m_compilation_units.empend(*this, unit_offset, compilation_unit_header);