From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) by sourceware.org (Postfix) with ESMTPS id 6ED29385DC0B for ; Tue, 19 Dec 2023 15:15:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6ED29385DC0B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 6ED29385DC0B Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=198.175.65.9 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702998920; cv=none; b=KJToHYckl7sgoB/Dp3PKQyNr9W584iNkSM78Wb/iD6bx82tI1B9U/xJ0c4O/mWrVhj+k+GEQLqyqXNMUnrGxY5kGEvER9OTKMTaNPWcxBRokYL97YnUeGSHOTYbFGGsigyLl9QGnBbDTJG7S1u/w8P+coTaWs4KY5hEdk95r8P8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702998920; c=relaxed/simple; bh=Ks4TUxkDkv6EEKfxTJuS72Y5ygM7yqwKOZOqMA1U1yU=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=lyN77vhPi/aJj6zvokXGf11FTwjSe7EXZ5dg5qO0BvXCaHVGWfQD8x9OSfaFJoT0AvHgW8h06Ch0HfSAH2UJiS7d4DI1mA1IsmzQyDEDil2YVXDYqm82PR0mkq/0r2llb6TXg6hhFJzytPyJPEjUlZRtdQWh7VteIj8HglGsEFo= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1702998920; x=1734534920; h=from:to:subject:date:message-id:in-reply-to:references: mime-version:content-transfer-encoding; bh=Ks4TUxkDkv6EEKfxTJuS72Y5ygM7yqwKOZOqMA1U1yU=; b=S8o5dJg0lQxIJG/GjK3A5/qLxHuveqVDyeGbSuudkIqE7OIxMdWJAj39 B9iV3jou5Kb9140CTqB/9kdbmU/XT65QdBnkQ3qt+J1cv60lt5Bq7pYjD UinVX4MxyV5aAMijRAD9lt4fLfEZ9+iVeIZl/dl/BQ2TDAhHvophPTSEm uCK6zAiFU259gdjXIK+yp+2ClvRPkiRf20CtuZdFZmKYZrK78uM1QFYXr JWWsynS9ZEvlpQlXhsDBC4VJRDNfRMCObBqghxO0yJpeeIcnDM5jT229c GTNO9ELxW/NB2WVRya6kQahLyeSzqKcZ06EDH5QiNaYhHeEEHd43eHG2l w==; X-IronPort-AV: E=McAfee;i="6600,9927,10929"; a="14359677" X-IronPort-AV: E=Sophos;i="6.04,288,1695711600"; d="scan'208";a="14359677" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Dec 2023 07:15:19 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10929"; a="776007581" X-IronPort-AV: E=Sophos;i="6.04,288,1695711600"; d="scan'208";a="776007581" Received: from gkldttdev001.igk.intel.com (HELO localhost) ([10.123.221.50]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Dec 2023 07:15:17 -0800 From: Eduard Sargsyan To: gdb-patches@sourceware.org Subject: [PATCH 1/1] gdb: fix assert after register write failure Date: Tue, 19 Dec 2023 15:14:48 +0000 Message-Id: <20231219151448.23519-2-eduard.sargsyan@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231219151448.23519-1-eduard.sargsyan@intel.com> References: <20231219151448.23519-1-eduard.sargsyan@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-9.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_NONE,SPF_NONE,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 List-Id: GDB tries to invalidate register cache if write to register fails. In case when write was requested to be done for a remote inferior and connection with remote is dead (so write request will fail) GDB cleans register caches and as result setting register status fails with segmentation fault, because internal pointers are not valid anymore and the unique_ptr with register status is null. This change adds check if register status cache is still valid before trying to modify (set status to UNKNOWN). gdb/ChangeLog: 2021-03-18 Eduard Sargsyan * regcache.c (regcache::raw_write): Add check for pointer validity. --- gdb/regcache.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gdb/regcache.c b/gdb/regcache.c index 6140a05f02b..94ca89a58de 100644 --- a/gdb/regcache.c +++ b/gdb/regcache.c @@ -882,8 +882,11 @@ regcache::raw_write (int regnum, gdb::array_view src) /* Invalidate the register after it is written, in case of a failure. */ - auto invalidator - = make_scope_exit ([&] { this->invalidate (regnum); }); + auto invalidator = make_scope_exit ([&] + { + if (this->m_register_status != nullptr) + this->invalidate (regnum); + }); target_store_registers (this, regnum); -- 2.34.1 Intel Deutschland GmbH Registered Address: Am Campeon 10, 85579 Neubiberg, Germany Tel: +49 89 99 8853-0, www.intel.de Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva Chairperson of the Supervisory Board: Nicole Lau Registered Office: Munich Commercial Register: Amtsgericht Muenchen HRB 186928