From 72b994ffd44235483275f55ec2a6c34a588a1555 Mon Sep 17 00:00:00 2001 From: "yibo.yl" Date: Tue, 11 Mar 2025 19:39:29 +0800 Subject: [PATCH] Fix a crash related to ElfParser::loadSymbolTable (#191) --- ddprof-lib/src/main/cpp/symbols_linux.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/ddprof-lib/src/main/cpp/symbols_linux.cpp b/ddprof-lib/src/main/cpp/symbols_linux.cpp index a76969b7c..3cc711606 100644 --- a/ddprof-lib/src/main/cpp/symbols_linux.cpp +++ b/ddprof-lib/src/main/cpp/symbols_linux.cpp @@ -353,14 +353,11 @@ void ElfParser::loadSymbolTable(const char *symbols, size_t total_size, symbols += ent_size) { ElfSymbol *sym = (ElfSymbol *)symbols; if (sym->st_name != 0 && sym->st_value != 0) { - // sanity check the offsets not to exceed the file size - if (_length == 0 || (sym->st_name < _length && sym->st_value < _length)) { - // Skip special AArch64 mapping symbols: $x and $d - if (sym->st_size != 0 || sym->st_info != 0 || - strings[sym->st_name] != '$') { - _cc->add(_base + sym->st_value, (int)sym->st_size, - strings + sym->st_name); - } + // Skip special AArch64 mapping symbols: $x and $d + if (sym->st_size != 0 || sym->st_info != 0 || + strings[sym->st_name] != '$') { + _cc->add(_base + sym->st_value, (int)sym->st_size, + strings + sym->st_name); } } }