emacs-diffs
[Top][All Lists]
Advanced

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

master 95d0b71: Sanitize ical data in gnus-icalendar-event-from-ical


From: Lars Ingebrigtsen
Subject: master 95d0b71: Sanitize ical data in gnus-icalendar-event-from-ical
Date: Fri, 16 Oct 2020 04:16:41 -0400 (EDT)

branch: master
commit 95d0b71683336979b3cc1633c8b3f6a88b4d7bff
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Sanitize ical data in gnus-icalendar-event-from-ical
    
    * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event-from-ical):
    Sanitise the data before passing it on to the constructor.  This
    avoids backtraces on icals with extra, unknown slots (bug#43057).
---
 lisp/gnus/gnus-icalendar.el | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/lisp/gnus/gnus-icalendar.el b/lisp/gnus/gnus-icalendar.el
index d7e35c5..bc1bb83 100644
--- a/lisp/gnus/gnus-icalendar.el
+++ b/lisp/gnus/gnus-icalendar.el
@@ -264,7 +264,14 @@
                                (map-property ical-property))
                               args)))))
       (mapc #'accumulate-args prop-map)
-      (apply #'make-instance event-class args))))
+      (apply
+       #'make-instance
+       event-class
+       (cl-loop for slot in (eieio-class-slots event-class)
+               for keyword = (intern
+                              (format ":%s" (eieio-slot-descriptor-name slot)))
+               when (plist-get args keyword)
+               append (list keyword (plist-get args keyword)))))))
 
 (defun gnus-icalendar-event-from-buffer (buf &optional attendee-name-or-email)
   "Parse RFC5545 iCalendar in buffer BUF and return an event object.



reply via email to

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