From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-x430.google.com (mail-pf1-x430.google.com [IPv6:2607:f8b0:4864:20::430]) by sourceware.org (Postfix) with ESMTPS id 7C8DB3857413 for ; Wed, 21 Sep 2022 12:39:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 7C8DB3857413 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pf1-x430.google.com with SMTP id 9so5741584pfz.12 for ; Wed, 21 Sep 2022 05:39:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-disposition:mime-version:message-id:subject:to:from:date :from:to:cc:subject:date; bh=hbkoil6OhrGt5buINxX5zufpas3PtUc985yKcmaeZFU=; b=VD4hNbZQeKp9hE2yHe/XW1w+F/WdG18OeApeHYv/qh5zoBwJPCUzL6lckSNOW7O1C8 6fNYkdgfU9s6/EPrEsWwzb9Z2IuL48RG2Ym3v1kxG0If8ez3fyMFtuEQp2vw3TsWBjl0 2186nGeuRpz/RQ4HZ2sfXVQog3FzlZNBQvNqjRauW1OTzak/Tdjw1bfjUlLUl89fIL/L ADCKdzULexw53tWHAx47aRbDFN/dBpChKsKnFg+Z3M66MirwrzkOrpsih/d38/ZYRUMh G5wHRIVxmtl6bJDRtuiVyWuxU5mIEJqK/iIcSUZNBWRRKRPjl+owu5iBJGzuODxCU/wH QUeg== 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:to:from:date :x-gm-message-state:from:to:cc:subject:date; bh=hbkoil6OhrGt5buINxX5zufpas3PtUc985yKcmaeZFU=; b=19u+IPqaMa06sa+ERYD5TyY7vZYZ18Q1TYexX0h+/kKZ0nXtclD9jVyKkIF4QqJsO/ OzcQ/lzb3RkShuQMXE9QzoNsylF1501ZjVpG/MrJSlndYlWe9dFlVUt4Y0kdIR4JrDUI MyteVtMfjs7r9z/RjPec6OQqbNGE+5XL2th2V/xnZCazF8cb4/HzIRoeBcTiZjPo5z8W +oTdl7lLVyaaoUiozDSkLlHBslWv3Iea9gtZuseyE2VwH4eYIX/0NfsgQTng0BBNuMKD 618DlR83PFRt4NcExzVjHW83rc+rHQNiOYr3zDXK5d6tRA+P+7UV61wPXxjj/lDYnCO9 7GAQ== X-Gm-Message-State: ACrzQf0YT7KRuM12j2UWGfy4fqrbzwHptNNwXdi6kz+noWstNLGykvv7 CEYZRGJWt2wjyBsKiG8naRsrK9DMH/A= X-Google-Smtp-Source: AMsMyM7KGMt3RMc+hwCkV3lw8E8kubrdZh8IGU3pxRoANDCIDp0xd+rM56XEukS1IAQWSzF/bg7syg== X-Received: by 2002:a63:f917:0:b0:439:1c07:d1da with SMTP id h23-20020a63f917000000b004391c07d1damr24738403pgi.13.1663763994394; Wed, 21 Sep 2022 05:39:54 -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 u8-20020a170902e5c800b0017300ec80b0sm1960474plf.308.2022.09.21.05.39.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Sep 2022 05:39:54 -0700 (PDT) Received: by squeak.grove.modra.org (Postfix, from userid 1000) id 3132D11402DE; Wed, 21 Sep 2022 22:09:51 +0930 (ACST) Date: Wed, 21 Sep 2022 22:09:51 +0930 From: Alan Modra To: binutils@sourceware.org Subject: PR29566, objdump -p considers an empty .gnu.version_r invalid Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Spam-Status: No, score=-3036.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 List-Id: Allow and ignore an empty section. PR 29566 * elf.c (bfd_section_from_shdr): Don't set elf_dynverdef or elf_dynverref for empty sections. (_bfd_elf_slurp_version_tables): Remove now redundant tests. diff --git a/bfd/elf.c b/bfd/elf.c index 2eb2a97370a..bc433cf516c 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -2479,7 +2479,8 @@ bfd_section_from_shdr (bfd *abfd, unsigned int shindex) } case SHT_GNU_verdef: - elf_dynverdef (abfd) = shindex; + if (hdr->sh_info != 0) + elf_dynverdef (abfd) = shindex; elf_tdata (abfd)->dynverdef_hdr = *hdr; ret = _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex); goto success; @@ -2494,7 +2495,8 @@ bfd_section_from_shdr (bfd *abfd, unsigned int shindex) goto success; case SHT_GNU_verneed: - elf_dynverref (abfd) = shindex; + if (hdr->sh_info != 0) + elf_dynverref (abfd) = shindex; elf_tdata (abfd)->dynverref_hdr = *hdr; ret = _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex); goto success; @@ -8877,8 +8879,7 @@ _bfd_elf_slurp_version_tables (bfd *abfd, bool default_imported_symver) hdr = &elf_tdata (abfd)->dynverref_hdr; - if (hdr->sh_info == 0 - || hdr->sh_info > hdr->sh_size / sizeof (Elf_External_Verneed)) + if (hdr->sh_info > hdr->sh_size / sizeof (Elf_External_Verneed)) { error_return_bad_verref: _bfd_error_handler @@ -9011,7 +9012,7 @@ _bfd_elf_slurp_version_tables (bfd *abfd, bool default_imported_symver) hdr = &elf_tdata (abfd)->dynverdef_hdr; - if (hdr->sh_info == 0 || hdr->sh_size < sizeof (Elf_External_Verdef)) + if (hdr->sh_size < sizeof (Elf_External_Verdef)) { error_return_bad_verdef: _bfd_error_handler -- Alan Modra Australia Development Lab, IBM