GNU bug report logs - #73420
30.0.90; Race condition in `ansi-osc-apply-on-region' with concurrent user input

Previous Next

Package: emacs;

Reported by: Augusto Stoffel <arstoffel <at> gmail.com>

Date: Sun, 22 Sep 2024 07:39:01 UTC

Severity: normal

Found in version 30.0.90

To reply to this bug, email your comments to 73420 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#73420; Package emacs. (Sun, 22 Sep 2024 07:39:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Augusto Stoffel <arstoffel <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 22 Sep 2024 07:39:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Augusto Stoffel <arstoffel <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.0.90; Race condition in `ansi-osc-apply-on-region' with
 concurrent user input
Date: Sun, 22 Sep 2024 09:37:55 +0200
In the current implementation of `ansi-osc-apply-on-region', the
intention of the calls to `buffer-substring-no-properties' and
`delete-region' is to get the payload of the OSC control sequence
currently being parsed.

However, it is possible that the user typed some characters in the
buffer while the OSC payload is arriving (and I have actually observed
this happen if the payload is moderately large).  So
`buffer-substring-no-properties' should be replaced with something that
gets the buffer text in that range, but restricted to the portions that
actually came from the subprocess.

PS: Is there already a version of `filter-buffer-substring' anywhere in
Emacs that filters based on the value of a given text property, or do
people bake their own every time?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#73420; Package emacs. (Sun, 22 Sep 2024 08:22:03 GMT) Full text and rfc822 format available.

Message #8 received at 73420 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Augusto Stoffel <arstoffel <at> gmail.com>
Cc: Matthias Meulien <orontee <at> gmail.com>, 73420 <at> debbugs.gnu.org
Subject: Re: bug#73420: 30.0.90;
 Race condition in `ansi-osc-apply-on-region' with concurrent user
 input
Date: Sun, 22 Sep 2024 11:21:04 +0300
> From: Augusto Stoffel <arstoffel <at> gmail.com>
> Date: Sun, 22 Sep 2024 09:37:55 +0200
> 
> In the current implementation of `ansi-osc-apply-on-region', the
> intention of the calls to `buffer-substring-no-properties' and
> `delete-region' is to get the payload of the OSC control sequence
> currently being parsed.
> 
> However, it is possible that the user typed some characters in the
> buffer while the OSC payload is arriving (and I have actually observed
> this happen if the payload is moderately large).  So
> `buffer-substring-no-properties' should be replaced with something that
> gets the buffer text in that range, but restricted to the portions that
> actually came from the subprocess.

Thanks.  Since you (together with Matthias) are the author of
ansi-osc.el, would you like to propose a solution for this?

> PS: Is there already a version of `filter-buffer-substring' anywhere in
> Emacs that filters based on the value of a given text property, or do
> people bake their own every time?

Looks like the latter, see backtrace--filter-visible, for example.




This bug report was last modified 266 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.