From patchwork Thu May 2 11:07:27 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Modra X-Patchwork-Id: 89270 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 35E44384AB67 for ; Thu, 2 May 2024 11:08:03 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ot1-x331.google.com (mail-ot1-x331.google.com [IPv6:2607:f8b0:4864:20::331]) by sourceware.org (Postfix) with ESMTPS id 094253858D34 for ; Thu, 2 May 2024 11:07:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 094253858D34 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 094253858D34 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::331 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1714648056; cv=none; b=ikSJyV+MHdERloT7Ecng5+p4W965cGPcXgzWBo9c2U95ZTgExrrwCC2/or3MZvZ4YxN/KpNyuHWtgctqb1hKknODYipHXbnAjP6ZUYv9PZBl4xp7dScJfPcuVyr76CV6oqKe6F1SdveLb+kW4Ve1aruS1T40IrFT/URbWTUuHTI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1714648056; c=relaxed/simple; bh=7gJOktNdpz8nxpDhTY+ZzFTwRNJztVwcl0ZUaLD/tCM=; h=DKIM-Signature:Date:From:To:Subject:Message-ID:MIME-Version; b=r7nhp958xjRWyR6LqS6g9UaWmI/dzulpCBdO0SDlMotFkTwNQ6gbc3Qn6uSAp3QOWmNJTemClv82i9+QSZ3yPk304h3z5+Y+9AgG+6QTgvO/xpuy/k8dm4LIsn2zxCECa54rWbCqgjhvJgHOV5aBjhW9s00I1JncUQMdvVZj2yg= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-ot1-x331.google.com with SMTP id 46e09a7af769-6eb86b69e65so4545819a34.3 for ; Thu, 02 May 2024 04:07:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714648051; x=1715252851; darn=sourceware.org; h=content-disposition:mime-version:message-id:subject:to:from:date :from:to:cc:subject:date:message-id:reply-to; bh=0r8APvfTT0EtNRgniFI/8eWR+uYefrW+y/DYN0Tub5Y=; b=STuGcrhT66X3SiKJJEjIWWoLOWJxtoGLgfIzVvjiRACfqyfYjYm00QaLC18aeWXsww 1ZowToutZYcbd4EOUIbzvfXcZCd2sbQiZwmfA/zNfVMVyjrRRbdGX+2sNNqkdPDZ04sg Aeot6weFQq1m82HgRngXiEbag7uq7ztUzuzGcMfb0xpBn0zraK80KNq7DNvJW6xHmnj9 ut2J9FgDr6UE/FNu16nJ8JV9Tqn4lIfQ8tFxQ6DyQj66gSkJOBOSZ9u7jNBl8NS8TNA/ emXGpP2DPu80XuKuek/o5TNZfrdnc5NENiRHDB79k8dyPLTiTMLbvMn/woZkBPkaF6Jx 7nFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714648051; x=1715252851; h=content-disposition:mime-version:message-id:subject:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=0r8APvfTT0EtNRgniFI/8eWR+uYefrW+y/DYN0Tub5Y=; b=BddI4HSFlqGmMuwRdtFSj2p8FeSxuk8o8YboVEz3oa2gxFHhQpBmbNYygQS7KIItPD mxeOlsKONkdrLJu+f4Stl33UTvw0CMrgfUzMlwQcN65mGAWqHrnDAw1vAxDaB/uF5tnK Mn/v1V6pKaxtmumeCzbXbsg76U9KAkXXxvRHyYBo1ezXCtQtua+8qcD/DfhXh8PNHyGd eJXsLqFO/b7AYKbh6x1XIYzxJ8LCOclVYjfvKeCgv9dt4Q4/lmo/HZ19dmmWMooq6rgA zSUjsASOulHLhVe5TdIffIvU67gPsRK8zWtSAmLjwUxTTWg2IiF10sa+JoVbYDyNedDh aCng== X-Gm-Message-State: AOJu0YyugDJv3xf1A+CkS4pgzlN5IH+NOR1hPL1q29xQkYpD1h84dqV5 73+4k9RaQzsec3euRz2BXyuJfUmuU8RwWvrTNKwuRpAai0mKywWAkTyfOg== X-Google-Smtp-Source: AGHT+IHD4blVTd6fdqbcl/PP+L63Wy/N2aAA2ykw1swK9AKMO54fLQOKdWpABoMNuPJ5zhBrOd0vug== X-Received: by 2002:a05:6358:9386:b0:183:f639:2415 with SMTP id h6-20020a056358938600b00183f6392415mr2364764rwb.27.1714648050509; Thu, 02 May 2024 04:07:30 -0700 (PDT) Received: from squeak.grove.modra.org (158.106.96.58.static.exetel.com.au. [58.96.106.158]) by smtp.gmail.com with ESMTPSA id y63-20020a633242000000b005f806498270sm938182pgy.9.2024.05.02.04.07.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 May 2024 04:07:30 -0700 (PDT) Received: by squeak.grove.modra.org (Postfix, from userid 1000) id 91CA811400D5; Thu, 2 May 2024 20:37:27 +0930 (ACST) Date: Thu, 2 May 2024 20:37:27 +0930 From: Alan Modra To: binutils@sourceware.org Subject: PR31692, objdump fails .debug_info size check Message-ID: MIME-Version: 1.0 Content-Disposition: inline X-Spam-Status: No, score=-3033.5 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.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+patchwork=sourceware.org@sourceware.org PR 31692 * objdump.c (load_specific_debug_section): Replace bfd_get_size check with bfd_section_size_insane. Call free_debug_section after printing error messages. Set section->start NULL when freeing. diff --git a/binutils/objdump.c b/binutils/objdump.c index 5acaa54929d..3d70df470f2 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -4286,6 +4286,7 @@ load_specific_debug_section (enum dwarf_section_display_enum debug, if (streq (section->filename, bfd_get_filename (abfd))) return true; free (section->start); + section->start = NULL; } section->filename = bfd_get_filename (abfd); @@ -4297,13 +4298,12 @@ load_specific_debug_section (enum dwarf_section_display_enum debug, alloced = amt = section->size + 1; if (alloced != amt || alloced == 0 - || (bfd_get_size (abfd) != 0 && alloced >= bfd_get_size (abfd))) + || bfd_section_size_insane (abfd, sec)) { - section->start = NULL; - free_debug_section (debug); printf (_("\nSection '%s' has an invalid size: %#" PRIx64 ".\n"), sanitize_string (section->name), section->size); + free_debug_section (debug); return false; } @@ -4345,9 +4345,9 @@ load_specific_debug_section (enum dwarf_section_display_enum debug, if (!ret) { - free_debug_section (debug); printf (_("\nCan't get contents for section '%s'.\n"), sanitize_string (section->name)); + free_debug_section (debug); return false; }