From patchwork Mon Jun 14 10:07:36 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Matthias_M=C3=A4nnich?= X-Patchwork-Id: 43846 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D426A3851C22 for ; Mon, 14 Jun 2021 10:08:55 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D426A3851C22 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1623665335; bh=dSYvVUAiIGW1RilwBF1x1tpDoVbmKkS3+Oxvaya02nI=; h=Date:In-Reply-To:References:Subject:To:List-Id:List-Unsubscribe: List-Archive:List-Help:List-Subscribe:From:Reply-To:Cc:From; b=sj1edsWxxIweT7XEJWXt/KB3Pjq0ZHkA5hp+vRClxeGn3MnhjOt0YYfNNC8yX3xhO nOBmWSN3+IxqK88ZAwDtGQ8089AvXVGlJPlCqTZacIPIqCPFHJ1QJeAgg6ov+rTArd 1ynbA8z4RgwMLDTSN3Dt8yPne8uvIVsddaY1cpzM= X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from mail-qv1-xf49.google.com (mail-qv1-xf49.google.com [IPv6:2607:f8b0:4864:20::f49]) by sourceware.org (Postfix) with ESMTPS id 88B173893C78 for ; Mon, 14 Jun 2021 10:08:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 88B173893C78 Received: by mail-qv1-xf49.google.com with SMTP id ce7-20020a05621403c7b0290238a4eac5c4so12317285qvb.13 for ; Mon, 14 Jun 2021 03:08:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc:content-transfer-encoding; bh=dSYvVUAiIGW1RilwBF1x1tpDoVbmKkS3+Oxvaya02nI=; b=e6XZXeYJCQ10ncqmT7ZeoUi5MzVv9bpNp/XjyPX8Gv5jOTN5MoS8hveHPm45zpbJDM 2wofpwq5FZAhzTeEgOTVuyru6BeQHfG40J/ap/Fa6+x8/+inGFKu+QDOxCYyta0y8jEN sM/vIAE9Fb4guUk1Oqn2TtCvlGas/QfBAezZ86LcMW3ch3Plf034R8qSJC44ubcq7jNd 5JgnkXoeyds49OUP8zR5lE5GEE27ciXEocNt5ypMSnrL1oaUkuyMHxu8B6YsX/DTUAF1 r3Lhs4fdd+Dbw+lJhrIrkIE9m1DXHrQI2kMQZ62cAI1pdZ6wiPlBtQXnTZF9/eLadtUC tWOw== X-Gm-Message-State: AOAM533fQ86S/EadmyX+Bl36ceHQwbBtL88gHD7RnG/2jlRW/UCHs9hB JhwhGbMweJtwkpDIocpv6XC5v3+umyBk3r37evlFsH+eXTdzjc2Qv4Lb/qu3inEXPAzlGYg9NqP hKnTmYU1QJldNgjpxeMEFjSazXvT7tjZUbIKC9qt8xV8xpdClk193rdRV6KE1sVzTWunjWr0= X-Google-Smtp-Source: ABdhPJz3XlMBXF8YZrXWKpKwA5/PQCli74Pzkvw20cLwHhzeHmGXJNuyDI9F8n3q2O4cVWvRgxekQmOl/SD/7g== X-Received: from lux.lon.corp.google.com ([2a00:79e0:d:210:5a41:80b:e50f:3291]) (user=maennich job=sendgmr) by 2002:a05:6214:252e:: with SMTP id gg14mr17591576qvb.55.1623665306948; Mon, 14 Jun 2021 03:08:26 -0700 (PDT) Date: Mon, 14 Jun 2021 11:07:36 +0100 In-Reply-To: <20210614100736.1665072-1-maennich@google.com> Message-Id: <20210614100736.1665072-2-maennich@google.com> Mime-Version: 1.0 References: <20210614100736.1665072-1-maennich@google.com> X-Mailer: git-send-email 2.32.0.272.g935e593368-goog Subject: [PATCH 2/2] symtab-reader: add support for binaries compiled with CFI To: libabigail@sourceware.org X-Spam-Status: No, score=-19.3 required=5.0 tests=BAYES_40, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, LIKELY_SPAM_BODY, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-Patchwork-Original-From: Matthias Maennich via Libabigail From: =?utf-8?q?Matthias_M=C3=A4nnich?= Reply-To: Matthias Maennich Cc: maennich@google.com, kernel-team@android.com, Dan Albert Errors-To: libabigail-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libabigail" Control-Flow-Integrity (CFI) when enabled in clang built binaries introduces an indirection when looking up ELF symbols. For DSO, the symbol table (.dynsym) will still contain the symbols, but additional symbols with suffix .cfi will be added to the full .symtab. Unfortunately, the DWARF debug information refers to CFI symbols by address to the .cfi suffixed variants as they point to the actual implementation. When the dwarf reader is determining whether to suppress variable or function declarations, it does so by identifying if there is an associated ELF symbol at the given address read from DWARF. Unless we know about the alternative address, this will fail and the type information will be suppressed. Hence add the .cfi symbol values to the lookup map to associate the address of them with the corresponding publicly exported symbol. * src/abg-symtab-reader.cc (symtab::load_): use new add_alternative_address_lookups method. (add_alternative_address_lookups): New method. * src/abg-symtab-reader.h (add_alternative_address_lookups): new function declaration. * tests/data/test-read-dwarf/test-libaaudio.so: New test data. * tests/data/test-read-dwarf/test-libaaudio.so.abi: New test data. * tests/test-read-dwarf.cc: New test case. Reported-by: Dan Albert Reviewed-by: Giuliano Procida Signed-off-by: Matthias Maennich --- src/abg-symtab-reader.cc | 81 + src/abg-symtab-reader.h | 3 + tests/data/test-read-dwarf/test-libaaudio.so | Bin 0 -> 214704 bytes .../test-read-dwarf/test-libaaudio.so.abi | 2072 +++++++++++++++++ tests/test-read-dwarf.cc | 8 + 5 files changed, 2164 insertions(+) create mode 100644 tests/data/test-read-dwarf/test-libaaudio.so create mode 100644 tests/data/test-read-dwarf/test-libaaudio.so.abi diff --git a/src/abg-symtab-reader.cc b/src/abg-symtab-reader.cc index edc9d82513bf..89a3fea352de 100644 --- a/src/abg-symtab-reader.cc +++ b/src/abg-symtab-reader.cc @@ -376,6 +376,8 @@ symtab::load_(Elf* elf_handle, } } + add_alternative_address_lookups(elf_handle); + is_kernel_binary_ = elf_helpers::is_linux_kernel(elf_handle); // Now apply the ksymtab_exported attribute to the symbols we collected. @@ -564,5 +566,84 @@ symtab::update_function_entry_address_symbol_map( } } +/// Fill up the lookup maps with alternative keys +/// +/// Due to special features like Control-Flow-Integrity (CFI), the symbol +/// lookup could be done indirectly. E.g. enabling CFI causes clang to +/// associate the DWARF information with the actual CFI protected function +/// (suffix .cfi) instead of with the entry symbol in the symtab. +/// +/// This function adds additional lookup keys to compensate for that. +/// +/// So far, this only implements CFI support, by adding addr->symbol pairs +/// where +/// addr : symbol value of the .cfi valyue +/// symbol : symbol_sptr looked up via "" +/// +/// @param elf_handle the ELF handle to operate on +void +symtab::add_alternative_address_lookups(Elf* elf_handle) +{ + Elf_Scn* symtab_section = elf_helpers::find_symtab_section(elf_handle); + if (!symtab_section) + return; + GElf_Shdr symtab_sheader; + gelf_getshdr(symtab_section, &symtab_sheader); + + const size_t number_syms = + symtab_sheader.sh_size / symtab_sheader.sh_entsize; + + Elf_Data* symtab = elf_getdata(symtab_section, 0); + + for (size_t i = 0; i < number_syms; ++i) + { + GElf_Sym *sym, sym_mem; + sym = gelf_getsym(symtab, i, &sym_mem); + if (!sym) + { + std::cerr << "Could not load symbol with index " << i + << ": Skipping alternative symbol load.\n"; + continue; + } + + const char* const name_str = + elf_strptr(elf_handle, symtab_sheader.sh_link, sym->st_name); + + // no name, no game + if (!name_str) + continue; + + const std::string name = name_str; + if (name.empty()) + continue; + + // Add alternative lookup addresses for CFI symbols + static const std::string cfi = ".cfi"; + if (name.size() > cfi.size() + && name.compare(name.size() - cfi.size(), cfi.size(), cfi) == 0) + // ... name.ends_with(".cfi") + { + const auto candidate_name = name.substr(0, name.size() - cfi.size()); + + auto symbols = lookup_symbol(candidate_name); + // lookup_symbol returns a vector of symbols. For this case we handle + // only the case that there has been exactly one match. Otherwise we + // can't reasonably handle it and need to bail out. + ABG_ASSERT(symbols.size() <= 1); + if (symbols.size() == 1) + { + const auto& symbol_sptr = symbols[0]; + GElf_Addr symbol_value = + elf_helpers::maybe_adjust_et_rel_sym_addr_to_abs_addr( + elf_handle, sym); + + const auto result = + addr_symbol_map_.emplace(symbol_value, symbol_sptr); + ABG_ASSERT(result.second); + } + } + } +} + } // end namespace symtab_reader } // end namespace abigail diff --git a/src/abg-symtab-reader.h b/src/abg-symtab-reader.h index 3b6d5ed7dab2..7ac15352f552 100644 --- a/src/abg-symtab-reader.h +++ b/src/abg-symtab-reader.h @@ -293,6 +293,9 @@ private: update_function_entry_address_symbol_map(Elf* elf_handle, GElf_Sym* native_symbol, const elf_symbol_sptr& symbol_sptr); + + void + add_alternative_address_lookups(Elf* elf_handle); }; /// Helper class to allow range-for loops on symtabs for C++11 and later code. diff --git a/tests/data/test-read-dwarf/test-libaaudio.so b/tests/data/test-read-dwarf/test-libaaudio.so new file mode 100644 index 0000000000000000000000000000000000000000..84c5f05f23f565d61ec37c99937fb64dac96dc8f GIT binary patch literal 214704 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 literal 0 HcmV?d00001 diff --git a/tests/data/test-read-dwarf/test-libaaudio.so.abi b/tests/data/test-read-dwarf/test-libaaudio.so.abi new file mode 100644 index 000000000000..dd98f75dac35 --- /dev/null +++ b/tests/data/test-read-dwarf/test-libaaudio.so.abi @@ -0,0 +1,2072 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/test-read-dwarf.cc b/tests/test-read-dwarf.cc index a04cef0866f7..509bc11aa749 100644 --- a/tests/test-read-dwarf.cc +++ b/tests/test-read-dwarf.cc @@ -488,6 +488,14 @@ InOutSpec in_out_specs[] = "data/test-read-dwarf/PR27700/test-PR27700.abi", "output/test-read-dwarf/PR27700/test-PR27700.abi", }, + { + "data/test-read-dwarf/test-libaaudio.so", + "", + "", + HASH_TYPE_ID_STYLE, + "data/test-read-dwarf/test-libaaudio.so.abi", + "output/test-read-dwarf/test-libaaudio.so.abi", + }, // This should be the last entry. {NULL, NULL, NULL, SEQUENCE_TYPE_ID_STYLE, NULL, NULL} };