1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-23 07:19:15 +00:00

Avoid slowdowns in xmltok-scan-attributes

* lisp/nxml/xmltok.el (xmltok-scan-attributes): Limit the search
to 10000 characters, to avoid slowdowns due to the quadratic
complexity of the regexp.  Suggested by Stefan Monnier.
This commit is contained in:
Gregory Heytings 2023-03-18 10:49:29 +00:00
parent 647c6bf2a6
commit 0eddfa28eb

View File

@ -734,8 +734,13 @@ and VALUE-END, otherwise a STRING giving the value."
(atts-needing-normalization nil))
(while (cond ((or (looking-at (xmltok-attribute regexp))
;; use non-greedy group
(when (looking-at (concat "[^<>\n]+?"
(xmltok-attribute regexp)))
;; Limit the search to 10000 characters, to
;; avoid slowdowns due to the quadratic
;; complexity of the regexp. See bug#61514.
(when (with-restriction
(point) (+ (point) 10000)
(looking-at (concat "[^<>\n]+?"
(xmltok-attribute regexp))))
(unless recovering
(xmltok-add-error "Malformed attribute"
(point)