After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 694812 - GNUTLS_E_PREMATURE_TERMINATION doesn't trigger G_TLS_ERROR_NOT_TLS
GNUTLS_E_PREMATURE_TERMINATION doesn't trigger G_TLS_ERROR_NOT_TLS
Status: RESOLVED FIXED
Product: glib
Classification: Platform
Component: network
2.35.x
Other Linux
: Normal normal
: ---
Assigned To: gtkdev
gtkdev
Depends on:
Blocks:
 
 
Reported: 2013-02-27 19:21 UTC by Thomas Weißschuh
Modified: 2013-03-05 16:35 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Thomas Weißschuh 2013-02-27 19:21:27 UTC
A GNUTLS_E_PREMATURE_TERMINATION during TLS handshake doesn't result in a  G_TLS_ERROR_NOT_TLS being returned. (Results in libsoup not retrying to connect)

Test URL: https://accounts.craigslist.org

Basic fix:

diff --git a/tls/gnutls/gtlsconnection-gnutls.c b/tls/gnutls/gtlsconnection-gnutls.c
index ccdb59c..a811de7 100644
--- a/tls/gnutls/gtlsconnection-gnutls.c
+++ b/tls/gnutls/gtlsconnection-gnutls.c
@@ -694,6 +694,9 @@ end_gnutls_io (GTlsConnectionGnutls  *gnutls,
 	  status == GNUTLS_E_UNEXPECTED_PACKET_LENGTH ||
 	  status == GNUTLS_E_FATAL_ALERT_RECEIVED ||
 	  status == GNUTLS_E_DECRYPTION_FAILED ||
+#ifdef GNUTLS_E_PREMATURE_TERMINATION
+	  status == GNUTLS_E_PREMATURE_TERMINATION ||
+#endif
 	  status == GNUTLS_E_UNSUPPORTED_VERSION_PACKET)
 	{
 	  g_clear_error (&my_error);
Comment 1 Dan Winship 2013-03-05 15:27:01 UTC
*** Bug 695062 has been marked as a duplicate of this bug. ***
Comment 2 Dan Winship 2013-03-05 15:28:29 UTC
fixed in git. I didn't notice this patch, and did it slightly
differently (based on the other bug report).
Comment 3 Thomas Weißschuh 2013-03-05 16:35:02 UTC
Works, thanks!