emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 30ffc25: Fix regex stack overflow in gdb-mi.el when


From: Eli Zaretskii
Subject: [Emacs-diffs] master 30ffc25: Fix regex stack overflow in gdb-mi.el when parsing complex locals
Date: Sat, 30 Dec 2017 06:16:44 -0500 (EST)

branch: master
commit 30ffc256abe7443a02b44490c518baf9a122b4c8
Author: David McFarland <address@hidden>
Commit: Eli Zaretskii <address@hidden>

    Fix regex stack overflow in gdb-mi.el when parsing complex locals
    
    * lisp/progmodes/gdb-mi.el (gdb-jsonify-buffer): Skip string
    literals with (forward-sexp) instead of matching with regex.
    (Bug#29868)
    
    Copyright-paperwork-exempt: yes
---
 lisp/progmodes/gdb-mi.el | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el
index 5855275..84b8c6b 100644
--- a/lisp/progmodes/gdb-mi.el
+++ b/lisp/progmodes/gdb-mi.el
@@ -2717,10 +2717,10 @@ If `default-directory' is remote, full file names are 
adapted accordingly."
               (insert "]"))))))
     (goto-char (point-min))
     (insert "{")
-    (let ((re (concat "\\([[:alnum:]-_]+\\)=\\({\\|\\[\\|\"\"\\|"
-                      gdb--string-regexp "\\)")))
+    (let ((re (concat "\\([[:alnum:]-_]+\\)=")))
       (while (re-search-forward re nil t)
-        (replace-match "\"\\1\":\\2" nil nil)))
+        (replace-match "\"\\1\":" nil nil)
+        (if (eq (char-after) ?\") (forward-sexp) (forward-char))))
     (goto-char (point-max))
     (insert "}")))
 



reply via email to

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