From 5085b1d0df9c4b6f0f32b100f88611bc2beb3c09 Mon Sep 17 00:00:00 2001 From: Joshua Peraza Date: Tue, 29 Oct 2019 17:55:54 -0700 Subject: linux, client: set module name from DT_SONAME 3e56ef9d changed dump_syms to set the module name from DT_SONAME expecting that clients were already using DT_SONAME when it was present. The Breakpad client previously only used DT_SONAME as the name for a module if it detected that it was likely mapped from a zip file. This patch updates the Breakpad Linux client to always use the DT_SONAME in minidumps if it's present. Also included are changes to address comments that were missed from that review. Bug: 1016924 Change-Id: I4aae8c05e6793d4b0598049a8964ddd4cb0c6194 Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/1889231 Reviewed-by: Mark Mentovai Reviewed-by: Mike Frysinger --- src/common/linux/dump_symbols.cc | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'src/common') diff --git a/src/common/linux/dump_symbols.cc b/src/common/linux/dump_symbols.cc index e561ad94..0eea2b54 100644 --- a/src/common/linux/dump_symbols.cc +++ b/src/common/linux/dump_symbols.cc @@ -963,13 +963,11 @@ bool InitModuleForElfClass(const typename ElfClass::Ehdr* elf_header, return false; } - string name; - char name_buf[NAME_MAX]; - memset(name_buf, 0, sizeof(name_buf)); - name = google_breakpad::ElfFileSoNameFromMappedFile(elf_header, name_buf, - sizeof(name_buf)) - ? name_buf - : google_breakpad::BaseName(obj_filename); + char name_buf[NAME_MAX] = {}; + std::string name = google_breakpad::ElfFileSoNameFromMappedFile( + elf_header, name_buf, sizeof(name_buf)) + ? name_buf + : google_breakpad::BaseName(obj_filename); // Add an extra "0" at the end. PDB files on Windows have an 'age' // number appended to the end of the file identifier; this isn't -- cgit v1.2.1