From patchwork Mon Dec 19 13:27:19 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Modra X-Patchwork-Id: 34542 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp2386313wrn; Mon, 19 Dec 2022 05:27:32 -0800 (PST) X-Google-Smtp-Source: AMrXdXsN7Ax9n53UxrsE2RVf60+j22a/LJ8F/SA7DO3rhqjLCbQgopyIOGWKltKphtbkioxGWzA6 X-Received: by 2002:aa7:d552:0:b0:479:7026:b992 with SMTP id u18-20020aa7d552000000b004797026b992mr4597775edr.38.1671456452858; Mon, 19 Dec 2022 05:27:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671456452; cv=none; d=google.com; s=arc-20160816; b=PT5kunyJfIDkOEpqrcMB+arYAk9050if3L+Kdqf5XCRxWj8SKWgjcyMYHfskS86i6q 4zeikT6g1y1cXjLXUnqiNJILmpcMcJHjBIrhQEIUYLTEsYIztJg4cvPKS6mNxoMyPQuk FgHAXZNih4jS3vUouILZufAspK/jWFy6Y+0oVSp0enA4O56wrnSYr90dbSZgVitjaFK5 gnKpwg9GrV4GaqXlyJS9xOH9nBHaqvKRUoIIQAyFy5aO67eITe8ZabwAns5SK46WnPZl 31AGLoPXsxQRZPYtaxKhkbwUawtD1wKoa9eVTxgsKdzspv6lfN8DxykHjho+UQTZKFDq 8pQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence :content-disposition:mime-version:message-id:subject:cc:to:date :dmarc-filter:delivered-to:dkim-signature:dkim-filter; bh=wsMDrpnnqNo0uEZaHXVDno2Rkq1J/EGtF02YXUrit6Y=; b=ia/vTmikk55C5P/SCcTgGNO2PakR/lOXquofyXrBdX55D88B+vElaaBfdNomp6rS/i xLZFvJpRah5XAH1xnVrpeaHnZSKOtzF4o7jgpvUenAD8fukuwBI+oTmCFP4LUJYptafo PZLXJIpejYjLfxaj/j2trC33udbUwHrmrYfwiyJrHDu5UQVmQoTvIQABb/FWVLnJmYl8 wZR3Y9Y7S2B0hzQ32Musx0nBpEbzJgIZAGsvyZokiawupYOjxtIUvlIMnIbppdqT6K3P U/Ol1FEie2o1mCP0jPO4p7FhjxhcjnmuQ/Tiq0nMSCFzAJFiufbOglQIILjJKxMzW4YS rG/Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=r66cq6+f; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id dn27-20020a05640222fb00b0046fab27ede4si8038137edb.591.2022.12.19.05.27.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Dec 2022 05:27:32 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=r66cq6+f; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C7BB53858C54 for ; Mon, 19 Dec 2022 13:27:31 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C7BB53858C54 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1671456451; bh=wsMDrpnnqNo0uEZaHXVDno2Rkq1J/EGtF02YXUrit6Y=; h=Date:To:Cc:Subject:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=r66cq6+fpAPes9MPPmmqo7w5BVAecBTFAZ4t2B1ZFKnZ7rtyzH3ocp4T8mL9zqRwn BSDp519tazIIjp1RNeBg0PhHXKaMlhTgwiP6zcWAkVW70VaVsVhdExt2gTnc+xpW7I jZHHISewM0Dxl8val16i80RqqIvAGixprlrjKxdY= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-pf1-x432.google.com (mail-pf1-x432.google.com [IPv6:2607:f8b0:4864:20::432]) by sourceware.org (Postfix) with ESMTPS id C77253858D1E for ; Mon, 19 Dec 2022 13:27:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C77253858D1E Received: by mail-pf1-x432.google.com with SMTP id k79so6213863pfd.7 for ; Mon, 19 Dec 2022 05:27:23 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-disposition:mime-version:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=wsMDrpnnqNo0uEZaHXVDno2Rkq1J/EGtF02YXUrit6Y=; b=xrK8ekKFyYsocU39ESE3kKKwudwSScuzah2VAHJ4EkU/JGAStrlGC28MEjYHlS0KLI PkqHituZnRnN6MAeT1Pi5jE3mrC6NmzUkbKvmHB7cPxI5lGZv6bkr0FF62PNbpH4t6sP NPUq0XzN0Xv3iXjYB7jQErpotsKMA0JP5ddCLSIDA5Op/lTO7Wdx75eFqtkWBc4gubax WBhzPCtqgrPPxCyzBidVr1iR20MyibwwKd+UVeOCwc4EUDbZLcClvceY9fJYjIG4WnnB worviRlYQXsP50NHEUfLtfBPzxGJCH521Bxvmszdjx7Sathy8jN0Du73s5IlQ0SOjmnj X/1w== X-Gm-Message-State: AFqh2kpu8aenBCJqrf8ckes32HEf1+OxiBfV1hRwvVnXeUlJEz+zTbQa CE/MmEa8ksc1B1o9FlJP1YPd7BRI8mk= X-Received: by 2002:a62:7b8a:0:b0:576:f334:6740 with SMTP id w132-20020a627b8a000000b00576f3346740mr9560835pfc.23.1671456442759; Mon, 19 Dec 2022 05:27:22 -0800 (PST) Received: from squeak.grove.modra.org ([2406:3400:51d:8cc0:a57b:7d53:5916:3824]) by smtp.gmail.com with ESMTPSA id g28-20020aa79f1c000000b00574ebfdc721sm6787061pfr.16.2022.12.19.05.27.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Dec 2022 05:27:22 -0800 (PST) Received: by squeak.grove.modra.org (Postfix, from userid 1000) id BFE6A1140DDD; Mon, 19 Dec 2022 23:57:19 +1030 (ACDT) Date: Mon, 19 Dec 2022 23:57:19 +1030 To: binutils@sourceware.org Cc: Nick Clifton Subject: Tidy PR29893 and PR29908 fix Message-ID: MIME-Version: 1.0 Content-Disposition: inline X-Spam-Status: No, score=-3035.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alan Modra via Binutils From: Alan Modra Reply-To: Alan Modra Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1752649121582392118?= X-GMAIL-MSGID: =?utf-8?q?1752649121582392118?= Hi Nick, I'm removing the code you added to check "end < entry" for DWARF version 4, because if you look at the way debug_addr_info is set up you'll see that it is sorted and so entry = section->start + debug_addr_info [i]->addr_base; end = section->start + debug_addr_info [i + 1]->addr_base; must result in end >= entry. (I'd looked into adding a test there for PR29893.) Also, I wonder about all of these warning messages we've been adding for fuzzed object file errors. In normal operation of the tools they will never be hit so we're just creating work for translators. Maybe they should mostly all just be "%pA+%#" PRIx64 " invalid\n", section, (uint64_t) offset That's likely all someone debugging binutils or a producer of DWARF needs. PR 29893 PR 29908 * dwarf.c (display_debug_addr): Combine dwarf5 unit_length checks. Delete dead code. diff --git a/binutils/dwarf.c b/binutils/dwarf.c index 03b36afcec0..e08d51b4a97 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -7731,19 +7731,14 @@ display_debug_addr (struct dwarf_section *section, SAFE_BYTE_GET_AND_INC (length, curr_header, 4, entry); if (length == 0xffffffff) SAFE_BYTE_GET_AND_INC (length, curr_header, 8, entry); - if (length > (size_t) (section->start + section->size - curr_header)) + if (length > (size_t) (section->start + section->size - curr_header) + || length < (size_t) (entry - curr_header)) { warn (_("Corrupt %s section: unit_length field of %#" PRIx64 - " too large\n"), section->name, length); + " is invalid\n"), section->name, length); return 0; } end = curr_header + length; - if (end < entry) - { - warn (_("Corrupt %s section header: length field (%lx) is too small\n"), - section->name, (long) length); - return 0; - } SAFE_BYTE_GET_AND_INC (version, curr_header, 2, entry); if (version != 5) warn (_("Corrupt %s section: expecting version number 5 in header but found %d instead\n"), @@ -7754,18 +7749,7 @@ display_debug_addr (struct dwarf_section *section, address_size += segment_selector_size; } else - { - end = section->start + debug_addr_info [i + 1]->addr_base; - - if (end < entry) - { - warn (_("Corrupt %s section: address base of entry %u (%lx) is less than entry %u (%lx)\n"), - section->name, - i, (long) debug_addr_info [i]->addr_base, - i + 1, (long) debug_addr_info [i + 1]->addr_base); - return 0; - } - } + end = section->start + debug_addr_info [i + 1]->addr_base; header = end; idx = 0;