From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: David Kastrup Newsgroups: gmane.emacs.devel Subject: Re: [Emacs-diffs] master 8ba156f: Attempt to avoid crashes in plist-member Date: Tue, 13 Oct 2015 15:41:29 +0200 Message-ID: <87d1wi9986.fsf@fencepost.gnu.org> References: <20151012170324.17966.77@vcs.savannah.gnu.org> <83k2qro5eg.fsf@gnu.org> <87twpv83p8.fsf@fencepost.gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1444743743 4086 80.91.229.3 (13 Oct 2015 13:42:23 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 13 Oct 2015 13:42:23 +0000 (UTC) Cc: Eli Zaretskii , emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Oct 13 15:42:23 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZlzqQ-0004o1-S0 for ged-emacs-devel@m.gmane.org; Tue, 13 Oct 2015 15:42:23 +0200 Original-Received: from localhost ([::1]:35897 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZlzqQ-0004zV-2Q for ged-emacs-devel@m.gmane.org; Tue, 13 Oct 2015 09:42:22 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37939) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zlzpg-0004Jd-00 for emacs-devel@gnu.org; Tue, 13 Oct 2015 09:41:41 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zlzpb-0002Z5-Dt for emacs-devel@gnu.org; Tue, 13 Oct 2015 09:41:35 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:34437) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zlzpb-0002Yz-Af; Tue, 13 Oct 2015 09:41:31 -0400 Original-Received: from localhost ([127.0.0.1]:48256 helo=lola) by fencepost.gnu.org with esmtp (Exim 4.82) (envelope-from ) id 1Zlzpa-0004Sq-K6; Tue, 13 Oct 2015 09:41:30 -0400 Original-Received: by lola (Postfix, from userid 1000) id DD04BDF4F8; Tue, 13 Oct 2015 15:41:29 +0200 (CEST) In-Reply-To: (Stefan Monnier's message of "Tue, 13 Oct 2015 09:23:37 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:191456 Archived-At: Stefan Monnier writes: >>> QUIT could call some Lisp. >> Sure, but it would not return. > > Actually, QUIT can run Elisp and return (the `quit' signal is the only > signal that can do that). I have my doubt this could be the cause of the problem: between CONSP and XCDR the value has to be kept somewhere: in a register or on the stack. If Lisp code were running garbage collection in between, this cons cell would be protected due to its presence in the stack frame. The only plausible explanation I'd have is that CONSP happens to be true (due to the set bits in the value) but the value is garbage anyway and points nowhere sane. In that case, any intermittent QUIT call would be a red herring: the XCDR would bork on the value anyway. -- David Kastrup