Chromium Code Reviews| Index: util/mac/mach_o_image_symbol_table_reader.cc |
| diff --git a/util/mac/mach_o_image_symbol_table_reader.cc b/util/mac/mach_o_image_symbol_table_reader.cc |
| index 51e1261e71c99910c0287bbba2110430deac796a..0b64fd460cf6a929421c1200c085343a4784856a 100644 |
| --- a/util/mac/mach_o_image_symbol_table_reader.cc |
| +++ b/util/mac/mach_o_image_symbol_table_reader.cc |
| @@ -104,6 +104,7 @@ class MachOImageSymbolTableReaderInitializer { |
| return false; |
| } |
| + scoped_ptr<TaskMemory::MappedMemory> string_table; |
| for (size_t symbol_index = 0; symbol_index < symbol_count; ++symbol_index) { |
| const process_types::nlist& symbol = symbols[symbol_index]; |
| std::string symbol_info = base::StringPrintf(", symbol index %zu%s", |
| @@ -121,11 +122,17 @@ class MachOImageSymbolTableReaderInitializer { |
| return false; |
| } |
| + if (!string_table) { |
| + string_table = process_reader_->Memory()->ReadMapped( |
| + strtab_address, strtab_size); |
| + if (!string_table) { |
| + LOG(WARNING) << "could not read string table" << module_info_; |
| + return false; |
| + } |
| + } |
| + |
| std::string name; |
| - if (!process_reader_->Memory()->ReadCStringSizeLimited( |
| - strtab_address + symbol.n_strx, |
| - strtab_size - symbol.n_strx, |
| - &name)) { |
| + if (!string_table->ReadCString(symbol.n_strx, &name)) { |
|
Robert Sesek
2014/09/10 21:37:40
This doesn't take into the size limiting anymore.
Mark Mentovai
2014/09/10 22:16:55
rsesek wrote:
|
| LOG(WARNING) << "could not read string" << symbol_info; |
| return false; |
| } |