From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com [IPv6:2a00:1450:4864:20::52c]) by sourceware.org (Postfix) with ESMTPS id 1FDC83858D1E for ; Wed, 30 Nov 2022 06:04:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1FDC83858D1E 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-ed1-x52c.google.com with SMTP id z92so12209312ede.1 for ; Tue, 29 Nov 2022 22:04:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:from:content-language:references:to:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=iyk6Z9eDKov1DmLM5nk5YM8NL2zvUiT/FJnRx6hR5gw=; b=OEHYffoaYaHxcKHJiP7THv5npsNbTyx1GpsK+0P61Ywc5BGj5zljMCJhlizPSz7uml oO934rhXVnw2xrxGeKtb00Jjujgr8FQzHWpIQKxmH4lYjz6NNaw7Lr8NVRlvOPH3aV8U LiRs76z9HjH96CDJUl62LruknevFuhjFQBt1fsWVSUsmOE9qDeEhwuHl9Fi8xC/pbWzx 0GJaK/z3LSGEOv3VHdGSkO4oEKXt6BxBfm2aUVVVZS4IYR60gZzo+Zeb1TRm896rj4sG JvCU3Jb6e2GJm1i7rS5uLkyMeIDwd+wd9t1hgHHmoxcAttl/yCubcQa3p5UpNSRVr8N/ X/BQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:content-language:references:to:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=iyk6Z9eDKov1DmLM5nk5YM8NL2zvUiT/FJnRx6hR5gw=; b=GLLv7owQSfOYMkpFmDMOrhEb1jQByKnVGkTckOg1TVnw78V1WIyoKCYdPaIG9MYln0 AZwZ0y5VTYK+LmJmMoVCFwN7TqFftAKNCffDBhmq5foxWE5Nso1Vn88AQiawEq5g+uC9 k3+N18f25EEhlgvyT+NhGbQNPWlDNocFJ9wYWTankRpSqFt1P93C5TOWSEmJbtz1lyqY 9XKZMeRejgjy6ZGKvOtxecOot+9Q0xOvJitAS8r/Vgv5kxFcOyUoYehpi1RmQ3ZHunWm ZpoIYzXA7oWq6BbEJQeA8iRZY1yL/ySR1rd77kKz5JEsCvzcDT3E+6ZajNm3z8eT5edb HJiw== X-Gm-Message-State: ANoB5plaOEdNoC7kKb0P3Y1HHhsMnsv2VSo1WFlxflJOzdAS4LE6Hkrm Z/H5FggJwMinG5HlLTVs0Ns= X-Google-Smtp-Source: AA0mqf6E0VqrhAPzI4SmeVFsfQ+jl72TedGbFmk2vlkdp7e7vpbAOeFuGNIx+pgLiaMMTbT26gAsLA== X-Received: by 2002:aa7:c9cd:0:b0:461:891a:8162 with SMTP id i13-20020aa7c9cd000000b00461891a8162mr53580230edt.398.1669788272676; Tue, 29 Nov 2022 22:04:32 -0800 (PST) Received: from [10.11.3.159] ([109.190.253.11]) by smtp.googlemail.com with ESMTPSA id b26-20020a05640202da00b0045b4b67156fsm236687edx.45.2022.11.29.22.04.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 29 Nov 2022 22:04:31 -0800 (PST) Content-Type: multipart/mixed; boundary="------------tv3VaVTZBQMt5SnKi9ST0N9y" Message-ID: Date: Wed, 30 Nov 2022 07:04:29 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: [PATCH] libstdc++: Add error handler for To: =?UTF-8?Q?Bj=c3=b6rn_Sch=c3=a4pers?= , gcc-patches@gc.gnu.org, libstdc++@gcc.gnu.org References: <20221129214107.25572-1-gcc@hazardy.de> Content-Language: fr, en-US From: =?UTF-8?Q?Fran=c3=a7ois_Dumont?= In-Reply-To: <20221129214107.25572-1-gcc@hazardy.de> X-Spam-Status: No, score=-9.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,NICE_REPLY_A,RCVD_IN_BARRACUDACENTRAL,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: This is a multi-part message in MIME format. --------------tv3VaVTZBQMt5SnKi9ST0N9y Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Good catch, then we also need this patch. I still need to test it thought, just to make sure it compiles. Unless you have a nice way to force call to the error callback ? François On 29/11/22 22:41, Björn Schäpers wrote: > From: Björn Schäpers > > Not providing an error handler results in a nullpointer dereference when > an error occurs. > > libstdc++-v3/ChangeLog > > * include/std/stacktrace: Add __backtrace_error_handler and use > it in all calls to libbacktrace. > --- > libstdc++-v3/include/std/stacktrace | 21 ++++++++++++++------- > 1 file changed, 14 insertions(+), 7 deletions(-) > > diff --git a/libstdc++-v3/include/std/stacktrace b/libstdc++-v3/include/std/stacktrace > index e7cbbee5638..b786441cbad 100644 > --- a/libstdc++-v3/include/std/stacktrace > +++ b/libstdc++-v3/include/std/stacktrace > @@ -85,6 +85,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > > #define __cpp_lib_stacktrace 202011L > > + inline void > + __backtrace_error_handler(void*, const char*, int) {} > + > // [stacktrace.entry], class stacktrace_entry > class stacktrace_entry > { > @@ -159,7 +162,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > _S_init() > { > static __glibcxx_backtrace_state* __state > - = __glibcxx_backtrace_create_state(nullptr, 1, nullptr, nullptr); > + = __glibcxx_backtrace_create_state(nullptr, 1, > + __backtrace_error_handler, nullptr); > return __state; > } > > @@ -192,7 +196,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > return __function != nullptr; > }; > const auto __state = _S_init(); > - if (::__glibcxx_backtrace_pcinfo(__state, _M_pc, +__cb, nullptr, &__data)) > + if (::__glibcxx_backtrace_pcinfo(__state, _M_pc, +__cb, > + __backtrace_error_handler, &__data)) > return true; > if (__desc && __desc->empty()) > { > @@ -201,8 +206,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > if (__symname) > *static_cast<_Data*>(__data)->_M_desc = _S_demangle(__symname); > }; > - if (::__glibcxx_backtrace_syminfo(__state, _M_pc, +__cb2, nullptr, > - &__data)) > + if (::__glibcxx_backtrace_syminfo(__state, _M_pc, +__cb2, > + __backtrace_error_handler, &__data)) > return true; > } > return false; > @@ -252,7 +257,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > if (auto __cb = __ret._M_prepare()) [[likely]] > { > auto __state = stacktrace_entry::_S_init(); > - if (__glibcxx_backtrace_simple(__state, 1, __cb, nullptr, > + if (__glibcxx_backtrace_simple(__state, 1, __cb, > + __backtrace_error_handler, > std::__addressof(__ret))) > __ret._M_clear(); > } > @@ -270,7 +276,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > if (auto __cb = __ret._M_prepare()) [[likely]] > { > auto __state = stacktrace_entry::_S_init(); > - if (__glibcxx_backtrace_simple(__state, __skip + 1, __cb, nullptr, > + if (__glibcxx_backtrace_simple(__state, __skip + 1, __cb, > + __backtrace_error_handler, > std::__addressof(__ret))) > __ret._M_clear(); > } > @@ -294,7 +301,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > { > auto __state = stacktrace_entry::_S_init(); > int __err = __glibcxx_backtrace_simple(__state, __skip + 1, __cb, > - nullptr, > + __backtrace_error_handler, > std::__addressof(__ret)); > if (__err < 0) > __ret._M_clear(); --------------tv3VaVTZBQMt5SnKi9ST0N9y Content-Type: text/x-patch; charset=UTF-8; name="debug.patch" Content-Disposition: attachment; filename="debug.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvZGVidWcuY2MgYi9saWJzdGRj KystdjMvc3JjL2MrKzExL2RlYnVnLmNjCmluZGV4IDllZGEzODAyM2Y3Li4zMGNmMjRjYTg5 MSAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9kZWJ1Zy5jYworKysgYi9s aWJzdGRjKystdjMvc3JjL2MrKzExL2RlYnVnLmNjCkBAIC0xMTQxLDYgKzExNDEsMjEgQEAg bmFtZXNwYWNlCiAKICAgICByZXR1cm4gcmV0OwogICB9CisKKyAgdm9pZAorICBwcmludF9i YWNrdHJhY2VfZXJyb3Iodm9pZCogZGF0YSwgY29uc3QgY2hhciogbXNnLCBpbnQgZXJybnVt KQorICB7CisgICAgY29uc3QgaW50IGJ1ZnNpemUgPSA2NDsKKyAgICBjaGFyIGJ1ZltidWZz aXplXTsKKworICAgIFByaW50Q29udGV4dCYgY3R4ID0gKnN0YXRpY19jYXN0PFByaW50Q29u dGV4dCo+KGRhdGEpOworCisgICAgaW50IHdyaXR0ZW4gPSBfX2J1aWx0aW5fc3ByaW50Zihi dWYsICIlZCIsIGVycm51bSk7CisgICAgcHJpbnRfd29yZChjdHgsIGJ1Ziwgd3JpdHRlbik7 CisgICAgcHJpbnRfbGl0ZXJhbChjdHgsICIgLSAiKTsKKyAgICBwcmludF93b3JkKGN0eCwg bXNnKTsKKyAgICBwcmludF9saXRlcmFsKGN0eCwgIlxuIik7CisgIH0KICNlbmRpZgogfQog CkBAIC0xMTkzLDcgKzEyMDgsNyBAQCBuYW1lc3BhY2UgX19nbnVfZGVidWcKICAgICAgIHsK IAlwcmludF9saXRlcmFsKGN0eCwgIkJhY2t0cmFjZTpcbiIpOwogCV9NX2JhY2t0cmFjZV9m dWxsKAotCSAgX01fYmFja3RyYWNlX3N0YXRlLCAxLCBwcmludF9iYWNrdHJhY2UsIG51bGxw dHIsICZjdHgpOworCSAgX01fYmFja3RyYWNlX3N0YXRlLCAxLCBwcmludF9iYWNrdHJhY2Us IHByaW50X2JhY2t0cmFjZV9lcnJvciwgJmN0eCk7CiAJY3R4Ll9NX2ZpcnN0X2xpbmUgPSB0 cnVlOwogCXByaW50X2xpdGVyYWwoY3R4LCAiXG4iKTsKICAgICAgIH0K --------------tv3VaVTZBQMt5SnKi9ST0N9y--