[lldb] reject `.debug_arange` sections with nonzero segment size
authorLuke Drummond <luke.drummond@codeplay.com>
Tue, 10 Mar 2020 15:05:53 +0000 (15:05 +0000)
committerLuke Drummond <luke.drummond@codeplay.com>
Thu, 12 Mar 2020 12:22:50 +0000 (12:22 +0000)
commit0fa3320931e93d658f68c1f19eb45b922158b61e
treeece533f1d3b356a32b7c163a3560ef6d4b0ed5a7
parentf1ac5d2263f8419b865cc78ba1f5c8694970fb6b
[lldb] reject `.debug_arange` sections with nonzero segment size

If a producer emits a nonzero segment size, `lldb` will silently read
incorrect values and crash, or do something worse later as the tuple
size is expected to be 2, rather than 3.

Neither LLVM, nor GCC produce segmented aranges, but this dangerous case
should still be checked and handled.

Reviewed by: clayborg, labath
Differential Revision: https://reviews.llvm.org/D75925
Subscribers: lldb-commits
Tags: #lldb
lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugArangeSet.cpp
lldb/unittests/SymbolFile/DWARF/SymbolFileDWARFTests.cpp