From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) by sourceware.org (Postfix) with ESMTPS id 1F3E73858CD1 for ; Fri, 26 Apr 2024 16:03:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1F3E73858CD1 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=palves.net Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 1F3E73858CD1 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=209.85.128.51 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1714147449; cv=none; b=JTXWVOdHoO/w4m8CsiE4hDA4JvLkH0tjyIufJ6tma+37PJdzZobotHIn3CY8Zm+ifH/ErVFesTAHpsTIWnq0uUiXv7pEwathkjJF24GVI5kj10yjSF3FMS3jbCK+BV8YetCG5WvAUKA/yq6N/L3eLBJ3tBAuMCE1GZdVGWJGdlQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1714147449; c=relaxed/simple; bh=Q1KNOuXVdaAoiYZl+e7rNYUly4lq9drxYTYPy7o4rgQ=; h=Message-ID:Date:MIME-Version:Subject:To:From; b=jL0XvP/nAr+6hu1b80if+mbjC3LvLX52qUkRGQ/ly1xYwJ/UzwsXttT0/xvl1IJPLh6lHK+JKy/bY3nWzzTo8GWs2gmG+Y+ppIqbcPkJy2KzqcUarlJz76zsDjIxv/iWn/jvVELvKoe6Cdu4SDxNopQspEeGoLRIPAC50g8SF5I= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-41a1d2a7b81so19604815e9.0 for ; Fri, 26 Apr 2024 09:03:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714147438; x=1714752238; h=content-transfer-encoding:in-reply-to:content-language:from :references:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=mmybONUkkJygliZWtzniX+WBEvbuByw48mOTmrJJ7CM=; b=Gar4S+XipXS8qwqFADyOKSFikwPfe9RvVtjNXJ1PxdOSyTHfji2xZ0VC9zxZP4HRvK 5bGEWzyd4uxX3CCdOW3qSJ5KZD5X4rD9oUxPuNMigBakiuhCMuV6SY4TX0Av3RH04jMO mREyWg3YIS0m55wLUsKUjse9Xy97EuX0T+x/j//ITMzFhG8ExURqnp8Ygr/Rd9OO1lwu UX1A8LRr+GdYrgTefoKBd1eqU7B0T3cKr99+mcE5ePD8acKSHne7wZwB8bhTeg92LDOH N27PiWK9Nhr8oF8Vfhb9URS6MEmPVdSZYwQMwML+/Zc8r7TrPaXecrXpwov6ZDfT75B+ C0cA== X-Forwarded-Encrypted: i=1; AJvYcCWbZvaF1y51PFNsgKsuRWaNje6ZzREHG3ehqTCR0lDj3NM8Lxpz5eJhM4nYbC+aEaeFWOG8633e6C0OvSv1DxzENd+4Cdf3sGQsSg== X-Gm-Message-State: AOJu0YxyNBIX8ZivAdGDvSQRLNrYAR1POF7R/gTpAWmhFRUcc2hd3RzL 3UOdZGd2nuPwX7ShWLI6jkAyMxqyzQZNEZY3Mw0vx3WYpuPI8UC8 X-Google-Smtp-Source: AGHT+IGToODPsX7IzT7E8hiRRzRnOGExxj40oGXb9QYSur2+FKXZ6ZdJNoGo/P33oeqzGI1MbNfDZQ== X-Received: by 2002:a5d:5244:0:b0:34b:44d7:f3ed with SMTP id k4-20020a5d5244000000b0034b44d7f3edmr2546410wrc.8.1714147437641; Fri, 26 Apr 2024 09:03:57 -0700 (PDT) Received: from ?IPV6:2001:8a0:f93d:b900:eefb:5e83:838f:bb4c? ([2001:8a0:f93d:b900:eefb:5e83:838f:bb4c]) by smtp.gmail.com with ESMTPSA id a12-20020adfed0c000000b0034635bd6ba5sm22662105wro.92.2024.04.26.09.03.57 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 26 Apr 2024 09:03:57 -0700 (PDT) Message-ID: Date: Fri, 26 Apr 2024 17:03:55 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] [gdb/remote] Fix abort on REMOTE_CLOSE_ERROR To: Tom de Vries , gdb-patches@sourceware.org References: <20240420091407.22991-1-tdevries@suse.de> From: Pedro Alves Content-Language: en-US In-Reply-To: <20240420091407.22991-1-tdevries@suse.de> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-3.5 required=5.0 tests=BAYES_00,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 2024-04-20 10:14, Tom de Vries wrote: > + > /* See gdb_bfd.h. */ > > gdb_bfd_ref_ptr > @@ -938,21 +961,48 @@ gdb_bfd_openr_iovec (const char *filename, const char *target, > auto do_open = [] (bfd *nbfd, void *closure) -> void * > { > auto real_opener = static_cast (closure); > - return (*real_opener) (nbfd); > + /* Prevent exceptions from escaping to C code and triggering an abort. */ > + auto res = catch_exceptions ([&] { > + return (*real_opener) (nbfd); > + }); Please use the lambda formatting described at: https://sourceware.org/gdb/wiki/Internals%20GDB-C-Coding-Standards#Indentation_of_lambdas_as_parameters > + if (res == nullptr) > + { > + errno = EIO; > + bfd_set_error (bfd_error_system_call); > + } > + return res; > }; > > auto read_trampoline = [] (bfd *nbfd, void *stream, void *buf, > file_ptr nbytes, file_ptr offset) -> file_ptr > { > gdb_bfd_iovec_base *obj = static_cast (stream); > - return obj->read (nbfd, buf, nbytes, offset); > + /* Prevent exceptions from escaping to C code and triggering an abort. */ > + auto res = catch_exceptions ([&] { > + return obj->read (nbfd, buf, nbytes, offset); > + }); Ditto re. formatting. > + if (res == -1) > + { > + errno = EIO; > + bfd_set_error (bfd_error_system_call); > + } > + return res; > }; > > auto stat_trampoline = [] (struct bfd *abfd, void *stream, > struct stat *sb) -> int > { > gdb_bfd_iovec_base *obj = static_cast (stream); > - return obj->stat (abfd, sb); > + /* Prevent exceptions from escaping to C code and triggering an abort. */ > + auto res = catch_exceptions ([&] { > + return obj->stat (abfd, sb); > + }); Ditto. > + if (res == -1) > + { > + errno = EIO; > + bfd_set_error (bfd_error_system_call); > + } > + return res; > }; > > auto close_trampoline = [] (struct bfd *nbfd, void *stream) -> int > > base-commit: 20eee7540b9f2615f7661393756fec0bb62a1495 Otherwise: Approved-by: Pedro Alves Thanks.