emacs-diffs
[Top][All Lists]
Advanced

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

master 0120f45: Protect against bad results from libravatar


From: Lars Ingebrigtsen
Subject: master 0120f45: Protect against bad results from libravatar
Date: Thu, 28 Jan 2021 07:11:04 -0500 (EST)

branch: master
commit 0120f45db630753bc8c4d6c43f7cdb7f953144fd
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Protect against bad results from libravatar
    
    * lisp/image/gravatar.el (gravatar--service-libravatar): Don't
    have (gravatar-retrieve "foobar@zjp.codes" 'ignore) (which returns
    a CNAME) bug out.
---
 lisp/image/gravatar.el | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/lisp/image/gravatar.el b/lisp/image/gravatar.el
index 4f37834..b1e2a31 100644
--- a/lisp/image/gravatar.el
+++ b/lisp/image/gravatar.el
@@ -160,12 +160,16 @@ to track whether you're reading a specific mail."
                 (cond
                  ((and
                    result               ;there is a result
-                   (let* ((data (mapcar (lambda (record)
+                   (let* ((answers (dns-get 'answers result))
+                          (data (mapcar (lambda (record)
                                           (dns-get 'data (cdr record)))
-                                        (dns-get 'answers result)))
-                          (priorities (mapcar (lambda (r)
-                                                (dns-get 'priority r))
-                                              data))
+                                        ;; We may get junk data back (or CNAME;
+                                        ;; ignore).
+                                        (and (eq (dns-get 'type answers) 'SRV)
+                                             answers)))
+                          (priorities (and (mapcar (lambda (r)
+                                                     (dns-get 'priority r))
+                                                   data)))
                           (max-priority (if priorities
                                             (apply #'max priorities)
                                           0))



reply via email to

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