emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] scratch/backports-25.2-strict 5e50114 3/4: Avoid error in


From: Noam Postavsky
Subject: [Emacs-diffs] scratch/backports-25.2-strict 5e50114 3/4: Avoid error in icalendar--read-element
Date: Sun, 2 Oct 2016 16:33:13 +0000 (UTC)

branch: scratch/backports-25.2-strict
commit 5e50114d2495dab67793e76411d10c93bf411e03
Author: Peder O. Klingenberg <address@hidden>
Commit: Noam Postavsky <address@hidden>

    Avoid error in icalendar--read-element
    
    * lisp/calendar/icalendar.el (icalendar--read-element): Avoid a regex
    stack overflow by not using regex to extract values from calendar
    events. (Bug#24315)
    
    (cherry picked from commit 55dde6c1a21a792d3d75c19e612c74dd054aaf1e)
---
 lisp/calendar/icalendar.el |    8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el
index 386c554..c88f4ab 100644
--- a/lisp/calendar/icalendar.el
+++ b/lisp/calendar/icalendar.el
@@ -361,7 +361,8 @@ Pass arguments REGEXP REP STRING FIXEDCASE LITERAL to
 INVALUE gives the current iCalendar element we are reading.
 INPARAMS gives the current parameters.....
 This function calls itself recursively for each nested calendar element
-it finds."
+it finds.  The current buffer should be an unfolded buffer as returned
+from `icalendar--get-unfolded-buffer'."
   (let (element children line name params param param-name param-value
                 value
                 (continue t))
@@ -391,8 +392,9 @@ it finds."
       (unless (looking-at ":")
         (error "Oops"))
       (forward-char 1)
-      (re-search-forward  "\\(.*\\)\\(\r?\n[ \t].*\\)*" nil t)
-      (setq value (icalendar--rris "\r?\n[ \t]" "" (match-string 0)))
+      (let ((start (point)))
+        (end-of-line)
+        (setq value (buffer-substring start (point))))
       (setq line (list name params value))
       (cond ((eq name 'BEGIN)
              (setq children



reply via email to

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