GNU bug report logs - #26961
26.0.50; Possible timming issue in regex-tests.el

Previous Next

Package: emacs;

Reported by: Tino Calancha <tino.calancha <at> gmail.com>

Date: Wed, 17 May 2017 10:21:02 UTC

Severity: normal

Found in version 26.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Tino Calancha <tino.calancha <at> gmail.com>
Cc: 26961 <at> debbugs.gnu.org, schwab <at> suse.de
Subject: Re: bug#26961: 26.0.50; Possible timming issue in regex-tests.el
Date: Sat, 20 May 2017 13:04:38 +0300
> From: Tino Calancha <tino.calancha <at> gmail.com>
> Cc: 26961 <at> debbugs.gnu.org,  schwab <at> suse.de, tino.calancha <at> gmail.com
> Date: Fri, 19 May 2017 20:38:40 +0900
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> >> +  AUTO_STRING (inner_format, "`?%c'");
> >>    CALLN (Fmessage,
> >>           format, file,
> >> -         Fmapconcat (Qstring,
> >> +         Fmapconcat (list3 (Qlambda, list1 (Qchar),
> >> +                            list3 (Qformat, inner_format, Qchar)),
> >>                       Fsort (Vlread_unescaped_character_literals, Qlss),
> >>                       separator));
> >>  }
> >> 
> >> Do you think this code is wrong?
> >
> > This does indeed look dangerous: we are in effect consing Lisp data
> > structures from stack-based Lisp objects, and then process them in a
> > way that could leave some of them lying around when this function
> > returns, and its stack becomes invalid.
> >
> > Can you present the evidence that caused you to suspect this
> > particular change?  Were the "unescaped character literals" warning
> > displayed during the session which crashed?
> Yes, such warning always appear in the crash session.

Does the problem go away if you replace each AUTO_STRING in
load_warn_unescaped_character_literals with build_string?  IOW,
instead of this:

  AUTO_STRING (separator, ", ");

use this:

  Lisp_Object separator = build_string (", ");

and similarly for all the other strings used in the CALLN call in
load_warn_unescaped_character_literals.




This bug report was last modified 8 years and 2 days ago.

Previous Next


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