]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't crash if gnutls_handshake fails
authorRobert Pluim <rpluim@gmail.com>
Thu, 25 Feb 2021 15:36:56 +0000 (16:36 +0100)
committerRobert Pluim <rpluim@gmail.com>
Thu, 25 Feb 2021 15:44:43 +0000 (16:44 +0100)
In some situations involving Internet access not being fully
functional, gnutls_handshake returns a fatal error, which we were
ignoring, causing us to call gnutls_handshake again.  Now we check for
the error and return it to the caller.

* src/gnutls.c (gnutls_try_handshake): Return immediately if
gnutls_handshake returns a fatal error (Bug#46709).

src/gnutls.c

index aa245ee5c393569c1309f7459c3d6ecea34adc7d..4d5a909db0d5c2550f332699d2262d3647586954 100644 (file)
@@ -625,6 +625,8 @@ gnutls_try_handshake (struct Lisp_Process *proc)
 
   while ((ret = gnutls_handshake (state)) < 0)
     {
+      if (gnutls_error_is_fatal (ret))
+       return emacs_gnutls_handle_error (state, ret);
       do
        ret = gnutls_handshake (state);
       while (ret == GNUTLS_E_INTERRUPTED);