bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#27779: #27779; C stack overflow from `read' on deeply nested lisp ob


From: Keith David Bershatsky
Subject: bug#27779: #27779; C stack overflow from `read' on deeply nested lisp object.
Date: Mon, 08 Jan 2018 17:38:27 -0800

Dear Paul and Noam:

I have determined that bug #27779 was introduced on December 8, 2016 with 
commit f0a1e9ec3fba3d5bea5bd62f525dba3fb005d1b1.  The following patch to the 
Emacs 26 branch as of today (01/08/2018) reverses the commit and enables the 
test below to be completed successfully.

[FYI:  I am on OSX 10.6.8 and am manually increasing the stack limit with 
`ulimit -S -s unlimited` so that I can have rather large custom undo-tree 
histories.]

(require 'cl-lib)

(defun make-deep-object (depth)
    (let ((obj 1))
      (while (> (cl-decf depth) 0)
        (setq obj (vector (list obj))))
      obj))

;;; STACK OVERFLOW:  problem with `read'
;;; The bug was introduced on December 8, 2016 with
;;; commit:  f0a1e9ec3fba3d5bea5bd62f525dba3fb005d1b1
(let* ((print-circle t)
       (max-lisp-eval-depth most-positive-fixnum)
       (max-specpdl-size most-positive-fixnum)
       (deep-object (make-deep-object 6000))
       (string (prin1-to-string deep-object))
       (result (read string)))
  (when result
    (message "Bug #27779:  Success! (%d)" (length string))))

Attachment: patch.diff
Description: application/diff


reply via email to

[Prev in Thread] Current Thread [Next in Thread]