From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id WbWfLLBznmXVljcAWB0awg (envelope-from ) for ; Wed, 10 Jan 2024 05:38:40 -0500 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=PZGeqSWJ; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id AAE171E0C3; Wed, 10 Jan 2024 05:38:40 -0500 (EST) Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 948EF1E092 for ; Wed, 10 Jan 2024 05:38:38 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id DF9E6385842C for ; Wed, 10 Jan 2024 10:38:37 +0000 (GMT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id 353F63858D38 for ; Wed, 10 Jan 2024 10:38:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 353F63858D38 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 353F63858D38 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704883093; cv=none; b=q+pjFgOjdg/alI1OBJWDlA5ma+/ePOkVSW23k8A707JbRMrZEHuY7vM9ZoOJrKV/m6BPS+poLc7wTk136reFoDaGO9zgGR+mWHcP/wPRmptjn7kHmis9VNktCn5CUco9sMxY3jtgtdwJtXuOPYN2+/MzIrs/FGJoxjo91P1jsQM= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704883093; c=relaxed/simple; bh=lPM9MXdt4zmkp4OyHH3BExrKTuebrD0Rzaf15Tl7ZjU=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=QA2zz6mrc5PbwKSo/vsbDST8cSWVDGmo+xwAvshvWjR8YI6WvgaYu9zs9rNJuBFtdv8YCFz3hB+IGokokfgcVdEw+8vRHlDGEfiU6Zq6neQ6Fi9q17LbHPEhtOvqtthA4sLp2QGBdVS5qlVFEyJthVy0/gj9uLFHDXfMTsotylo= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1704883091; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=R66VMt4FG2YoYynUJAKdmwm5op3W0lcd5FKWTgUhnk8=; b=PZGeqSWJnIX1DiBiOEnUEnIqYCJt3pbrFgg81vzZil16VoM5nWQ3kzFz5YBftBGno9UoEg ZQ1AQYRtLb0ka47Qk5s4eWe30mJj4ZKJvwIeMLURg/SogHSIDEQNE9CqaQFPUe3GkcI143 XyIIDmLf4WDl0UEP06bZVajc9cDlHR4= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-349-wBWsqzcuMXGp9oWPbmYGUQ-1; Wed, 10 Jan 2024 05:38:04 -0500 X-MC-Unique: wBWsqzcuMXGp9oWPbmYGUQ-1 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-40d1ffbc3b8so29901825e9.0 for ; Wed, 10 Jan 2024 02:38:04 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704883083; x=1705487883; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=R66VMt4FG2YoYynUJAKdmwm5op3W0lcd5FKWTgUhnk8=; b=dJy1KtKEQ1kyJuVHX3+c8qasBxN2RbusDMyNHC9Lr1PoLhL115JCP5iP+MQov7J8G7 ARX9d1OyHt0RudlFDowYUTqeNPRZWT18s48X0JH5qR6+s3bkK2UGnchgqcpIba4HgKqn NacRGuOku2Gk/wn+BaMkrAKoljmm2DOvjHcjm44F+pyyRc1LB6AcKug2+dfjRhkBcU7K Vo2L04fN65JiMYQEpEV3RO7jDL5DB7yRk8IX4rprL3qWpfjKUBhSs8bhjo9+VK6XEfEy Ym/g+vI8HbgnJ7HAc9WwMG88qxd449otuAeP6g9Y41CypUfFKhGD9EHMxx/rO+hvDBiH ePig== X-Gm-Message-State: AOJu0YxZ9a7NNViCm/g+liW2Cjm1HI3cZVdGNGi+1vzKtp4TtSDZHAeN 8+yB2hldrBW2aJGBSZmaqgqWAaYj4wlVKSLjwhkn2DtlXv1qvaTspRk/UwIOTbr6f6Rsan0yrrR dTo1lqSFih/3dgmk0RwNY32JjWpzJn47s4RCnMA== X-Received: by 2002:a05:600c:2805:b0:40e:43f4:8e84 with SMTP id m5-20020a05600c280500b0040e43f48e84mr197196wmb.106.1704883083256; Wed, 10 Jan 2024 02:38:03 -0800 (PST) X-Google-Smtp-Source: AGHT+IGIoQq5HnwPBAigAm/QBlrVTSKp5BhX3LgyMKSor110A/lvLiWfX0MOsIeKXwISVXetp3LKPQ== X-Received: by 2002:a05:600c:2805:b0:40e:43f4:8e84 with SMTP id m5-20020a05600c280500b0040e43f48e84mr197194wmb.106.1704883082905; Wed, 10 Jan 2024 02:38:02 -0800 (PST) Received: from localhost (185.223.159.143.dyn.plus.net. [143.159.223.185]) by smtp.gmail.com with ESMTPSA id m22-20020a05600c4f5600b0040d5b849f38sm1752406wmq.0.2024.01.10.02.38.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jan 2024 02:38:02 -0800 (PST) From: Andrew Burgess To: Tom Tromey Cc: gdb-patches@sourceware.org Subject: Re: [PATCH 6/6] gdb/python: Add gdb.InferiorThread.__dict__ attribute In-Reply-To: <87a5petggg.fsf@tromey.com> References: <6fdf97c5f147a7e71fc0ca4de9e49961c067bae1.1704455158.git.aburgess@redhat.com> <87a5petggg.fsf@tromey.com> Date: Wed, 10 Jan 2024 10:38:01 +0000 Message-ID: <87jzoh8ody.fsf@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, 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 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+public-inbox=simark.ca@sourceware.org Tom Tromey writes: >>>>>> "Andrew" == Andrew Burgess writes: > > Andrew> + thread_obj->dict = PyDict_New (); > Andrew> + if (thread_obj->dict == nullptr) > Andrew> + return nullptr; > > If this fails... > > Andrew> static void > Andrew> thpy_dealloc (PyObject *self) > Andrew> { > Andrew> - Py_DECREF (((thread_object *) self)->inf_obj); > Andrew> + thread_object *thr_obj = (thread_object *) self; > Andrew> + > Andrew> + gdb_assert (thr_obj->inf_obj != nullptr); > Andrew> + gdb_assert (thr_obj->dict != nullptr); > Andrew> + > Andrew> + Py_DECREF (thr_obj->inf_obj); > Andrew> + Py_DECREF (thr_obj->dict); > > ... won't this be called and then crash because dict is NULL? > > I am not really sure TBH but other code, like your change in > py-inferior.c, seems to think this. > > I suspect Py_XDECREF should be used instead. > > The current call to Py_DECREF isn't a bug because create_thread_object > avoids creating the thread object when 'inf_obj' would be null. But, > the new patch doesn't do this. Thanks for spotting this. I'll get this fixed up. Andrew