GNU bug report logs -
#31186
27.0.50; Undefined behavior in lisp_file_lexically_bound_p
Previous Next
Reported by: Philipp <p.stephani2 <at> gmail.com>
Date: Tue, 17 Apr 2018 00:29:02 UTC
Severity: normal
Tags: confirmed
Found in version 27.0.50
Done: Andreas Schwab <schwab <at> suse.de>
Bug is archived. No further changes may be made.
Full log
Message #12 received at 31186-done <at> debbugs.gnu.org (full text, mbox):
On Apr 17 2018, Philipp <p.stephani2 <at> gmail.com> wrote:
> Loading a file or evaluating a buffer with the following contents causes
> undefined behavior, normally resulting in a segmentation fault:
>
> ;; -*- -:*-
>
> For example:
>
> $ emacs -Q -batch -nw -eval '(with-temp-buffer (insert ";; -*- -:*-") (eval-buffer))'
> Fatal error 11: Segmentation faultAbort trap: 6
I have installed this patch in the emacs-26 branch:
* src/lread.c (lisp_file_lexically_bound_p): Reset
beg_end_state before reading variable or value.
---
src/lread.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/lread.c b/src/lread.c
index 3104c441ec..72523c057f 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -896,6 +896,7 @@ lisp_file_lexically_bound_p (Lisp_Object readcharfun)
ch = READCHAR;
i = 0;
+ beg_end_state = NOMINAL;
while (ch != ':' && ch != '\n' && ch != EOF && in_file_vars)
{
if (i < sizeof var - 1)
@@ -921,6 +922,7 @@ lisp_file_lexically_bound_p (Lisp_Object readcharfun)
ch = READCHAR;
i = 0;
+ beg_end_state = NOMINAL;
while (ch != ';' && ch != '\n' && ch != EOF && in_file_vars)
{
if (i < sizeof val - 1)
--
2.17.0
Andreas.
--
Andreas Schwab, SUSE Labs, schwab <at> suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."
This bug report was last modified 7 years and 35 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.