From patchwork Tue Mar 14 02:05:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Modra X-Patchwork-Id: 69247 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1515785wrd; Mon, 13 Mar 2023 19:07:42 -0700 (PDT) X-Google-Smtp-Source: AK7set/a37tlYmlxZIX7qiHByVwun5WKzN84dWhZlH9LBe8ko68RHy74UFgehOaPiZxECPSRkelS X-Received: by 2002:a50:ee92:0:b0:4fb:2060:4c1c with SMTP id f18-20020a50ee92000000b004fb20604c1cmr8707833edr.4.1678759662605; Mon, 13 Mar 2023 19:07:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678759662; cv=none; d=google.com; s=arc-20160816; b=DHNIuaMlZFujnF9TWtWpKW7U4Mix3JJjiwPKFVvebuHNbBQ07V7c+F2c5CWgIlBKJf o8Y2jshEdkhR8FuzZdUdX8KTKvDQ/Onqr98M/5gZ7bip8j2W0YbM4jVJmkXYgpjfh1p0 iTmPHZrmfChlJhcaJCyAsn26CloSwYgbGOCqk0w80dDevHH6PN91YCFPVU1IpB0EQXzk m+vFuNvSaGaGa2gCqd9hz7++1a2ElRUW885hrLpg0RAaJboHEUhdfAV4jCAL2XE3Z7Zx gjlInLs0TNexbDcI+5qju2Sm8VibLthy9ScF1q0wQ996o0qjJUvNKU+ube3eO0STARNZ um8A== 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:to:date :dmarc-filter:delivered-to:dkim-signature:dkim-filter; bh=vtmimE5PhhDJq6VFH1X2evFVs6Bfaeo1piOD2rZjc1E=; b=kK3aXdoMUkjB2TRckUChPgg7o/3ppXlKyVtNX20iz7kvdrn2sss310tPBbYREEMMR0 4ovxOSUlnSfBzMwJrC5uYBozltgr9oqO/3N+wlJOxZpdo3tvCpI3sd9jsk/TQYF3zoJC eu7cSQsc5vvgeWM9Ey5d330PoSzMdEdcMNX5G95EEJlcLVqrdTtTMVLzk7G+yQM34MlT l9WbWYB6vOgWYTAKVxzieBQE3HDDyE4XdxHj2/KhPG+fPQOyNJCxLcls/n0Uw6kZK9Dg 3uvPzbKde9s6eJcYjFFk9wPUo/+XRsm8eOZbTXm6t6phMbyf/8f6UfJ8F7V+4Cto3ZMC yJIg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=cPDmskDN; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c 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. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id a14-20020a50ff0e000000b004acb6d9df2asi1076577edu.10.2023.03.13.19.07.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Mar 2023 19:07:42 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=cPDmskDN; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c 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 9E2D6385DC3C for ; Tue, 14 Mar 2023 02:07:07 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9E2D6385DC3C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1678759627; bh=vtmimE5PhhDJq6VFH1X2evFVs6Bfaeo1piOD2rZjc1E=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=cPDmskDNdKUINeKQnPsAiMpGMT/X7rkwnLft7xFCcHPFKE+o7le6wpZveYk+BG10C p+9m9iQGOa9+I3s29X4nsl8VKUNIW7sdt9ErNDjbSdg/BBTKgX5gCj8SMH0pYorKVX FsOsJqeoYFXd+WpjEtljqC0wm8oxj3Ntpq4KNTuc= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-pj1-x1031.google.com (mail-pj1-x1031.google.com [IPv6:2607:f8b0:4864:20::1031]) by sourceware.org (Postfix) with ESMTPS id 93857385084A for ; Tue, 14 Mar 2023 02:05:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 93857385084A Received: by mail-pj1-x1031.google.com with SMTP id h11-20020a17090a2ecb00b00237c740335cso13637540pjs.3 for ; Mon, 13 Mar 2023 19:05:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678759534; 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=vtmimE5PhhDJq6VFH1X2evFVs6Bfaeo1piOD2rZjc1E=; b=zHrpvJvMC9C6FxoElIpXZPGgQiGk0JEoxFH7MEoZpR3iLGT0cyJCEe0IQtX+nzdHLC z3hQzfagDkhSKwSbUyjWEgykgfkRTXbbJY04z5f2KQBrR4q3YtKP8/JphJ9wo72uQZ+9 XpRNx17rKSpjlU2ujwdhMbMp+sy39DrRpEB4+0UenLQZCnmGmAHUg0rAvd1uhBcr4Qwx s+J5VV9y0HRstWQaYeOW1QsImS/YLfTorW0q0Wf8orxOtrBKtn0kAQ0pWbtFAYO6Z2OQ s1fVawMaGSbYvx2mE66W9VLujlf9a8VSAcIAACvprW0LEQcANMen2IbtvuwV1MUHiN+r Pxbw== X-Gm-Message-State: AO0yUKXDUM6fRvZVqG9mweCUXazA1c6JhANJQIYwcidgOln0iPrIPGOv b3ODgtiKDBuMQRWzdOhYqEu9UXBwBHI= X-Received: by 2002:a17:902:cecc:b0:19a:a815:2858 with SMTP id d12-20020a170902cecc00b0019aa8152858mr42337177plg.51.1678759534478; Mon, 13 Mar 2023 19:05:34 -0700 (PDT) Received: from squeak.grove.modra.org ([2406:3400:51d:8cc0:4905:9cea:8081:59ff]) by smtp.gmail.com with ESMTPSA id ka3-20020a170903334300b0019c8ef78d52sm499423plb.21.2023.03.13.19.05.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Mar 2023 19:05:34 -0700 (PDT) Received: by squeak.grove.modra.org (Postfix, from userid 1000) id ECE9B1142C71; Tue, 14 Mar 2023 12:35:31 +1030 (ACDT) Date: Tue, 14 Mar 2023 12:35:31 +1030 To: binutils@sourceware.org Subject: Sanity check read_section_stabs_debugging_info Message-ID: MIME-Version: 1.0 Content-Disposition: inline X-Spam-Status: No, score=-3034.7 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?1760307091458930272?= X-GMAIL-MSGID: =?utf-8?q?1760307091458930272?= * rddbg.c (read_section_stabs_debugging_info): Exclude sections without contents. Use bfd_malloc_and_get_section. Don't alloc one extra for strings. diff --git a/binutils/rddbg.c b/binutils/rddbg.c index 036a74fc16a..f2ed6bcb3dd 100644 --- a/binutils/rddbg.c +++ b/binutils/rddbg.c @@ -117,39 +117,37 @@ read_section_stabs_debugging_info (bfd *abfd, asymbol **syms, long symcount, sec = bfd_get_section_by_name (abfd, names[i].secname); strsec = bfd_get_section_by_name (abfd, names[i].strsecname); - if (sec != NULL && strsec != NULL) + if (sec != NULL + && (bfd_section_flags (sec) & SEC_HAS_CONTENTS) != 0 + && strsec != NULL + && (bfd_section_flags (strsec) & SEC_HAS_CONTENTS) != 0) { bfd_size_type stabsize, strsize; bfd_byte *stabs, *strings; bfd_byte *stab; bfd_size_type stroff, next_stroff; - stabsize = bfd_section_size (sec); - stabs = (bfd_byte *) xmalloc (stabsize); - if (! bfd_get_section_contents (abfd, sec, stabs, 0, stabsize)) + if (!bfd_malloc_and_get_section (abfd, sec, &stabs)) { fprintf (stderr, "%s: %s: %s\n", bfd_get_filename (abfd), names[i].secname, bfd_errmsg (bfd_get_error ())); free (shandle); - free (stabs); return false; } - strsize = bfd_section_size (strsec); - strings = (bfd_byte *) xmalloc (strsize + 1); - if (! bfd_get_section_contents (abfd, strsec, strings, 0, strsize)) + if (!bfd_malloc_and_get_section (abfd, strsec, &strings)) { fprintf (stderr, "%s: %s: %s\n", bfd_get_filename (abfd), names[i].strsecname, bfd_errmsg (bfd_get_error ())); free (shandle); - free (strings); free (stabs); return false; } /* Zero terminate the strings table, just in case. */ - strings [strsize] = 0; + strsize = bfd_section_size (strsec); + strings [strsize - 1] = 0; if (shandle == NULL) { shandle = start_stab (dhandle, abfd, true, syms, symcount); @@ -165,6 +163,7 @@ read_section_stabs_debugging_info (bfd *abfd, asymbol **syms, long symcount, stroff = 0; next_stroff = 0; + stabsize = bfd_section_size (sec); /* PR 17512: file: 078-60391-0.001:0.1. */ for (stab = stabs; stab <= (stabs + stabsize) - 12; stab += 12) {