From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 D42453836657 for ; Tue, 31 May 2022 11:49:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D42453836657 Received: by mail-pj1-x1031.google.com with SMTP id l20-20020a17090a409400b001dd2a9d555bso2047563pjg.0 for ; Tue, 31 May 2022 04:49:17 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:subject:message-id:mime-version :content-disposition; bh=oDCfXWv2pT2d1X7O9/B+ati6es6H5UoSIKCWFpQsOBI=; b=SflQIe+FpavAjjjAxcIPlxlyBtY4EFa4j7Zff0qWu+OiNvuPFC/h+nh5/A04zLh6aw KdnIeuxY4dlcflKryR0752Cc0z9SmWznhI6lUlQj7eORUTNr4Y70EH6ZbF7G1HACRQAh oLSIq0qNHhGZHmONebnwlqaNV3FznPjPldGkRJMdWaLBBVu26kqCII5sTZ6GMI4EyW44 91jR5NQdSMCBe18dYHYt5nHi7s2QQbTZSg1pXzDk1bMuLxIrBlLLCgoX2U2GVpzY3rPj 7s1ZFVnIm02xFggDmYrC8D9VJPbpkQusHhIKbRwjk5johWEVwXdGXrsVSgWJxOXhxWjM 0FPg== X-Gm-Message-State: AOAM532TUUu8703uqs/L8oh+EIz4yvY0gSY/EOMKdLeaSNTD+q56gejD v20EnzWHKIsXXCa+PrnNvIb9nHHKqjk= X-Google-Smtp-Source: ABdhPJxkNXOtXRya/hmXaHxoldfiYljZQ8HBiV+7BNuzECaI0jNOUDtl1Fpx0aBnrFWNGDY5hzJyEQ== X-Received: by 2002:a17:90a:b78d:b0:1d9:4f4f:bc2a with SMTP id m13-20020a17090ab78d00b001d94f4fbc2amr28326459pjr.155.1653997756625; Tue, 31 May 2022 04:49:16 -0700 (PDT) Received: from squeak.grove.modra.org ([2406:3400:51d:8cc0:9f6e:9ca9:f586:1fa0]) by smtp.gmail.com with ESMTPSA id g14-20020a170902868e00b00163ed11621dsm3308375plo.73.2022.05.31.04.49.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 May 2022 04:49:16 -0700 (PDT) Received: by squeak.grove.modra.org (Postfix, from userid 1000) id 599041140AC9; Tue, 31 May 2022 21:19:13 +0930 (ACST) Date: Tue, 31 May 2022 21:19:13 +0930 From: Alan Modra To: binutils@sourceware.org Subject: sparc64 segfault in finish_dynamic_symbol Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Spam-Status: No, score=-3035.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_STOCKGEN, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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-List-Received-Date: Tue, 31 May 2022 11:49:19 -0000 SYMBOL_REFERENCES_LOCAL can return true for undefined symbols. This can result in a segfault when running sparc64 ld/testsuite/ld-vsb tests that expect a failure. * elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_symbol): Don't access u.def.section on non-default visibility undefined symbol. diff --git a/bfd/elfxx-sparc.c b/bfd/elfxx-sparc.c index 618b88589c7..514db1e4c76 100644 --- a/bfd/elfxx-sparc.c +++ b/bfd/elfxx-sparc.c @@ -4416,7 +4416,10 @@ _bfd_sparc_elf_finish_dynamic_symbol (bfd *output_bfd, return true; } - if (bfd_link_pic (info) && SYMBOL_REFERENCES_LOCAL (info, h)) + if (bfd_link_pic (info) + && (h->root.type == bfd_link_hash_defined + || h->root.type == bfd_link_hash_defweak) + && SYMBOL_REFERENCES_LOCAL (info, h)) { asection *sec = h->root.u.def.section; if (h->type == STT_GNU_IFUNC) -- Alan Modra Australia Development Lab, IBM