GNU bug report logs - #38602
26.3; gnutls-negotiate fails to handle :verify-error being set to t

Previous Next

Package: emacs;

Reported by: Alexis <flexibeast <at> gmail.com>

Date: Sat, 14 Dec 2019 02:27:01 UTC

Severity: normal

Tags: moreinfo

Found in version 26.3

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Robert Pluim <rpluim <at> gmail.com>
To: Alexis <flexibeast <at> gmail.com>
Cc: 38602 <at> debbugs.gnu.org
Subject: bug#38602: 26.3; gnutls-negotiate fails to handle :verify-error being set to t
Date: Sat, 14 Dec 2019 13:59:19 +0100
>>>>> On Sat, 14 Dec 2019 13:25:56 +1100, Alexis <flexibeast <at> gmail.com> said:

    Alexis> When establishing a connection to an XMPP server, jabber.el ends up
    Alexis> calling `gnutls-negotiate' with :verify-error set to `t'. When
    Alexis> `gnutls-negotiate' calls `gnutls-boot-parameters', the lines:

    Alexis>    (when verify-hostname-error
    Alexis>      (push :hostname verify-error))

    Alexis> in the latter create a dotted list rather than a proper list,
    Alexis> resulting in jabber.el returning the error message:

    Alexis>    connection lost: 'STARTTLS negotiation failed: Wrong type
    Alexis>    argument: listp, (:hostname . t)'

Thatʼs a misleading error message. Itʼs not a proper list, as you say,
but it *is* a list.

How about this? Producing a list (:hostname t) is not what you want,
since that removes the 'check everything' feature of specifying just
't'.

diff --git a/lisp/net/gnutls.el b/lisp/net/gnutls.el
index 9b13adaefe..14368bc298 100644
--- a/lisp/net/gnutls.el
+++ b/lisp/net/gnutls.el
@@ -345,8 +345,11 @@ gnutls-boot-parameters
                             (t nil))))
          (min-prime-bits (or min-prime-bits gnutls-min-prime-bits)))
 
-    (when verify-hostname-error
-      (push :hostname verify-error))
+    ;; Only add :hostname if `verify-error' is not t, since t
+    ;; means "include :hostname" Bug#38602.
+    (and verify-hostname-error
+         (not (eq verify-error t))
+         (push :hostname verify-error))
 
     `(:priority ,priority-string
                 :hostname ,hostname




This bug report was last modified 4 years and 225 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.