GNU bug report logs -
#10904
24.0.93; Infinite loop in GnuTLS code during Gnus nnimap-initiated SSL handshake
Previous Next
Reported by: Thomas Fitzsimmons <fitzsim <at> fitzsim.org>
Date: Mon, 27 Feb 2012 23:57:02 UTC
Severity: normal
Found in version 24.0.93
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
I rechecked this against bzr Emacs and GnuTLS 3.0.17 and it's still
there. I tried to create a smaller test case and came up with this:
$ gnutls-serv --http &
$ emacs -Q
(progn
(setq gnutls-log-level 5
message-log-max t)
(open-protocol-stream
"*nnimap*" (current-buffer) "localhost"
5556
:type 'ssl
:return-list t
:shell-command "ssh %s imapd"
:capability-command "1 CAPABILITY\r\n"
:end-of-command "\r\n"
:success " OK "
:starttls-function
(lambda (capabilities)
(when (gnus-string-match-p "STARTTLS" capabilities)
"1 STARTTLS\r\n"))))
The open-protocol-stream call is how nnimap-open-connection-1 in
lisp/gnus/nnimap.el creates the IMAP network process.
The loop happens when the GnuTLS handshake fails for some reason, within
a network process. I use the attached patch to limit the number of
iterations. I'm not familiar enough with the Emacs process code to
suggest a fix though.
It would be nice if one of you could try against gnutls-serv and confirm
you see this -- I think the problem is general enough that this proves
it and will allow a fix that I can test against my IMAP server.
However, if need-be I can try to arrange a tunnel to the IMAP server I'm
trying to connect to.
As for why this hasn't been seen before, it doesn't affect the GnuTLS
backend standalone (as Ted pointed out) -- it seems to only happen when
an SSL-using process is created and the GnuTLS handshake fails, so it
will be rare that it happens. Still, an infinite loop is not a nice
failure mode, even if it's rare.
Thomas
[emacs-gnutls-limit-loop.patch (text/x-patch, attachment)]
This bug report was last modified 7 years and 40 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.