From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com [IPv6:2607:f8b0:4864:20::102a]) by sourceware.org (Postfix) with ESMTPS id 7C7933894C11 for ; Mon, 28 Sep 2020 00:15:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 7C7933894C11 Received: by mail-pj1-x102a.google.com with SMTP id v14so2552419pjd.4 for ; Sun, 27 Sep 2020 17:15:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=a9fsEs7IJBpS6kukyt/udQQLNrvZH81yBg8m7CBFD78=; b=aJEkPjz7p+7p2vjbQeesNvX95uV4idk6Uh3gudOGKay43sbtQMVZ0mik+TJMRd0R/x +9xbEjv0AbpMtxwkNd/gODtUR1Kk7LHkEpBcYOJHI1Xx2VH7DAcQk67mKAROTMRY2dWk AfnYAlv9+CizfPNoNnkngvP5lPshzD7N1lCz4aAJOh5uSvKFJZIlWmkjUpMea7DVoSF0 vZA+NkY2ExGrQskZ/cpfC4FazZFbm3UgZ0MmMU6n1sYxqPtvoRJVXgoFv5y8CqV0YuxX UvRxAssRW5vsXIRRS2JJcw9NS8U58UkOQzhXDkxtRTW0lSyMNC9BV8NkGIN/ySQfsUCB QS2w== X-Gm-Message-State: AOAM5329E3COak4XsX6N7a3NdEq9xveBZNQ5BvHRtBl70ldu+JttVDYZ vIP5HY6JlbmVRfJcdt5RwQTbW+qIf7h6vQ== X-Google-Smtp-Source: ABdhPJyWl0mXkQmdMhh4RlHvcxY6EM0VkrLWkiTRJCUEBA55v1xfvQ34T89y0Igukybq/j3+CuyD7w== X-Received: by 2002:a17:90a:cb93:: with SMTP id a19mr7038309pju.207.1601252142366; Sun, 27 Sep 2020 17:15:42 -0700 (PDT) Received: from bubble.grove.modra.org (158.106.96.58.static.exetel.com.au. [58.96.106.158]) by smtp.gmail.com with ESMTPSA id u67sm7922153pgu.12.2020.09.27.17.15.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 27 Sep 2020 17:15:41 -0700 (PDT) Received: by bubble.grove.modra.org (Postfix, from userid 1000) id A286F80DE3; Mon, 28 Sep 2020 09:45:37 +0930 (ACST) Date: Mon, 28 Sep 2020 09:45:37 +0930 From: Alan Modra To: binutils@sourceware.org Subject: Re: PR26656, power10 libstdc++.so segfault in __cxxabiv1::__cxa_throw Message-ID: <20200928001537.GA6741@bubble.grove.modra.org> References: <20200923224137.GH5452@bubble.grove.modra.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200923224137.GH5452@bubble.grove.modra.org> User-Agent: Mutt/1.9.4 (2018-02-28) X-Spam-Status: No, score=-12.4 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.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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: Mon, 28 Sep 2020 00:15:44 -0000 Some missing NULL checks meant a stub for a local symbol used a stub looking like the __tls_get_addr_opt stub. PR 26656 * elf64-ppc.c (ppc_build_one_stub, ppc_size_one_stub): Check for NULL stub_entry->h before calling is_tls_get_addr. diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index 4194802d48..35f3cbef1e 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -11678,6 +11678,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) obfd = htab->params->stub_bfd; is_tga = ((stub_entry->stub_type == ppc_stub_plt_call_notoc || stub_entry->stub_type == ppc_stub_plt_call_both) + && stub_entry->h != NULL && is_tls_get_addr (&stub_entry->h->elf, htab) && htab->params->tls_get_addr_opt); if (is_tga) @@ -12188,7 +12189,8 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) case ppc_stub_plt_call_notoc: case ppc_stub_plt_call_both: lr_used = 0; - if (is_tls_get_addr (&stub_entry->h->elf, htab) + if (stub_entry->h != NULL + && is_tls_get_addr (&stub_entry->h->elf, htab) && htab->params->tls_get_addr_opt) { lr_used += 7 * 4; @@ -12258,6 +12260,7 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) } if ((stub_entry->stub_type == ppc_stub_plt_call_notoc || stub_entry->stub_type == ppc_stub_plt_call_both) + && stub_entry->h != NULL && is_tls_get_addr (&stub_entry->h->elf, htab) && htab->params->tls_get_addr_opt) { -- Alan Modra Australia Development Lab, IBM