From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: "Basil L. Contovounesios" via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#49944: parse-partial-sexp fails to signal an error when (> START LIMIT). Date: Sat, 21 Aug 2021 23:11:55 +0100 Message-ID: <87sfz2o3bo.fsf@tcd.ie> References: <87o89r2anv.fsf@gnus.org> Reply-To: "Basil L. Contovounesios" Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="36333"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: Alan Mackenzie , Stefan Monnier , 49944@debbugs.gnu.org To: Lars Ingebrigtsen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Aug 22 00:13:11 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mHZEk-0009Ge-Ib for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 22 Aug 2021 00:13:10 +0200 Original-Received: from localhost ([::1]:33188 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mHZEi-0000j6-EO for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 21 Aug 2021 18:13:08 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:36176) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mHZEc-0000iu-NT for bug-gnu-emacs@gnu.org; Sat, 21 Aug 2021 18:13:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:54667) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mHZEc-0001Ug-Fe for bug-gnu-emacs@gnu.org; Sat, 21 Aug 2021 18:13:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mHZEc-0000r8-5N for bug-gnu-emacs@gnu.org; Sat, 21 Aug 2021 18:13:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: "Basil L. Contovounesios" Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 21 Aug 2021 22:13:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49944 X-GNU-PR-Package: emacs Original-Received: via spool by 49944-submit@debbugs.gnu.org id=B49944.16295839273214 (code B ref 49944); Sat, 21 Aug 2021 22:13:02 +0000 Original-Received: (at 49944) by debbugs.gnu.org; 21 Aug 2021 22:12:07 +0000 Original-Received: from localhost ([127.0.0.1]:37980 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHZDj-0000pl-AY for submit@debbugs.gnu.org; Sat, 21 Aug 2021 18:12:07 -0400 Original-Received: from mail-wm1-f42.google.com ([209.85.128.42]:37516) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHZDg-0000pD-59 for 49944@debbugs.gnu.org; Sat, 21 Aug 2021 18:12:05 -0400 Original-Received: by mail-wm1-f42.google.com with SMTP id c8-20020a7bc008000000b002e6e462e95fso11403860wmb.2 for <49944@debbugs.gnu.org>; Sat, 21 Aug 2021 15:12:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tcd.ie; s=google21; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=GKrEZoeipGMelr9WOqjW50/bOjbK4hIQBM2xlxRa1/I=; b=b+W+vt3X6EqyWhFKNqvB15Ypf586Tq3+23KBD+BYHsFMgW3CgXMW0vPD6cYTiiUzWI Bj6U5tsWLiOHLlmBPOGgzn1h78KeRxuKSEn6PQxoFaltO2nwavkaztTpyorXzEIWxPyy jUYaiEmnbL495eUivoppHJfW9aQopOqZMswX9/79007uLIbM1+04OndEeCpe3MbeYSuh B0VuDlD9VzaE979eb1+RUeiS0oify4oX08QYyVMPzGPr2AxDMswcN0U8D+RyUXNmxFhx D1COMJOWwQ5C3QnXFKDLj49BXHH43M+sduJLEr6P1fkePeTL6PdYlEazR/wmm3UfUnTb pYqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=GKrEZoeipGMelr9WOqjW50/bOjbK4hIQBM2xlxRa1/I=; b=l4Jwdmh47yEo5zHZwT6oMAor1yt/wEEZrjUiuhMYRQLlbYWLRZaQNgN2daFTJYmnKl hEBidFTJ6LNw2MD/twiO8UHn0yELflJ+5Xp3u/loSEVYFXHzrgjJFbz3X3r4zRJXd+BA BNLJUq0WmIQjXj7yjwI1heprIwivhGUgrm0kZ/GGqR16VXChLekC8JYmJ/hGRoLvX+CD 1USF6PzdQHltlAaetd/kHTuQbBQc+QzQ/9T5abnsgtYVdG3fvR3LREhnsgRnnygdslR7 L4lwNpjLADMPGxptOSwmUwX71fJUVtr2RCzCI6lIe3rd4EVWN2+iOFTfVKv1VeyhHWk4 oySA== X-Gm-Message-State: AOAM532OPfG04A57SmnGjW8bfguQ4DicUhxK3OmsZaquoj7ePprarhuY BQEUXPij/j3V2EjcA/Py5DL1BA== X-Google-Smtp-Source: ABdhPJyHsoho7Pp+Oxb50pXE7tR6yCqA/melulfCN9xmKj0GBgTjShbJ+5uX6mWhytrUAJPQ/v+16g== X-Received: by 2002:a05:600c:4f96:: with SMTP id n22mr3446784wmq.17.1629583918362; Sat, 21 Aug 2021 15:11:58 -0700 (PDT) Original-Received: from localhost ([2a02:8084:20e2:c380:f410:82e8:3a21:eedf]) by smtp.gmail.com with ESMTPSA id q3sm8542538wmf.37.2021.08.21.15.11.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 21 Aug 2021 15:11:57 -0700 (PDT) In-Reply-To: <87o89r2anv.fsf@gnus.org> (Lars Ingebrigtsen's message of "Sat, 21 Aug 2021 15:24:20 +0200") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:212391 Archived-At: --=-=-= Content-Type: text/plain Lars Ingebrigtsen [2021-08-21 15:24 +0200] wrote: > Alan Mackenzie writes: > >> Emacs-28, emacs started with site-start.el and .emacs. >> >> On calling >> >> (parse-partial-sexp 19 18 nil nil s) >> >> Emacs surely ought to signal an error, since 18 < 19. It doesn't, >> though. It leaves point at a random position and returns >> >> (0 nil nil nil nil nil 0 nil nil nil nil) >> >> This is a bug. > > I've now made this change (and the doc string clarification discussed). > There are no test failures after the change, and I'm not getting any > errors when running it normally, either. Found one :). 0. emacs -Q 1. M-x toggle-debug-on-error RET 2. M-x ielm RET RET Debugger entered--Lisp error: (error "End position should be larger than start position.") parse-partial-sexp(# 64) ielm-return() funcall-interactively(ielm-return) call-interactively(ielm-return nil nil) command-execute(ielm-return) One option is to replace XFIXNUM with fix_position, which is what the subsequent validate_region also does. Another option is to CHECK_FIXNUM_COERCE_MARKER before the comparison. Any preference? --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-Fix-recent-parse-partial-sexp-argument-validation.patch >From 34c87c83fa86263da863da6c0a920c746b8af02b Mon Sep 17 00:00:00 2001 From: "Basil L. Contovounesios" Date: Sat, 21 Aug 2021 22:55:58 +0100 Subject: [PATCH] Fix recent parse-partial-sexp argument validation * src/syntax.c (parse-partial-sexp): Also handle markers as arguments (bug#49944). Tweak error message to follow conventions in "(elisp) Signaling Errors". --- src/syntax.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/syntax.c b/src/syntax.c index adc0da730e..057a4c3b1f 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -3595,8 +3595,8 @@ DEFUN ("parse-partial-sexp", Fparse_partial_sexp, Sparse_partial_sexp, 2, 6, 0, else target = TYPE_MINIMUM (EMACS_INT); /* We won't reach this depth. */ - if (XFIXNUM (to) < XFIXNUM (from)) - error ("End position should be larger than start position."); + if (fix_position (to) < fix_position (from)) + error ("End position is smaller than start position"); validate_region (&from, &to); internalize_parse_state (oldstate, &state); -- 2.32.0 --=-=-= Content-Type: text/plain Thanks, -- Basil --=-=-=--