From: David McFarland Date: Sat, 30 Dec 2017 11:14:32 +0000 (+0200) Subject: Fix regex stack overflow in gdb-mi.el when parsing complex locals X-Git-Tag: emacs-27.0.90~5946 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=30ffc256abe7443a02b44490c518baf9a122b4c8;p=emacs.git 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 --- diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el index 58552759b95..84b8c6b44b1 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 "}")))