You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by jk...@apache.org on 2017/09/21 16:09:59 UTC

thrift git commit: THRIFT-4212: Fix flush on invalid socket Client: c_glib

Repository: thrift
Updated Branches:
  refs/heads/master acbb61619 -> ac61a4211


THRIFT-4212: Fix flush on invalid socket
Client: c_glib

This closes #1279


Project: http://git-wip-us.apache.org/repos/asf/thrift/repo
Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/ac61a421
Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/ac61a421
Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/ac61a421

Branch: refs/heads/master
Commit: ac61a4211204ec2785362fc325b500d805ae2bba
Parents: acbb616
Author: Gonzalo Aguilar Delgado <ga...@level2crm.com>
Authored: Thu May 25 18:15:30 2017 +0200
Committer: James E. King, III <jk...@apache.org>
Committed: Thu Sep 21 09:09:20 2017 -0700

----------------------------------------------------------------------
 .../src/thrift/c_glib/transport/thrift_ssl_socket.c      | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/thrift/blob/ac61a421/lib/c_glib/src/thrift/c_glib/transport/thrift_ssl_socket.c
----------------------------------------------------------------------
diff --git a/lib/c_glib/src/thrift/c_glib/transport/thrift_ssl_socket.c b/lib/c_glib/src/thrift/c_glib/transport/thrift_ssl_socket.c
index bc75e2c..4abeb93 100644
--- a/lib/c_glib/src/thrift/c_glib/transport/thrift_ssl_socket.c
+++ b/lib/c_glib/src/thrift/c_glib/transport/thrift_ssl_socket.c
@@ -215,7 +215,10 @@ thrift_ssl_socket_read (ThriftTransport *transport, gpointer buf,
   ThriftSSLSocket *ssl_socket = THRIFT_SSL_SOCKET (transport);
   guint bytes = 0;
   guint retries = 0;
-  for (retries=0; retries < maxRecvRetries_; retries++) {
+  ThriftSocket *socket = THRIFT_SOCKET (transport);
+  g_return_val_if_fail (socket->sd != THRIFT_INVALID_SOCKET, FALSE);
+
+    for (retries=0; retries < maxRecvRetries_; retries++) {
       bytes = SSL_read(ssl_socket->ssl, buf, len);
       if (bytes >= 0)
 	break;
@@ -252,7 +255,7 @@ thrift_ssl_socket_write (ThriftTransport *transport, const gpointer buf,
   ThriftSSLSocket *ssl_socket = THRIFT_SSL_SOCKET (transport);
   gint ret = 0;
   guint sent = 0;
-  ThriftSocket *socket = THRIFT_SSL_SOCKET (transport);
+  ThriftSocket *socket = THRIFT_SOCKET (transport);
   g_return_val_if_fail (socket->sd != THRIFT_INVALID_SOCKET, FALSE);
 
   while (sent < len)
@@ -290,6 +293,10 @@ thrift_ssl_socket_flush (ThriftTransport *transport, GError **error)
   ThriftSSLSocket *ssl_socket = THRIFT_SSL_SOCKET (transport);
   gint ret = 0;
   guint sent = 0;
+
+  ThriftSocket *socket = THRIFT_SOCKET (transport);
+  g_return_val_if_fail (socket->sd != THRIFT_INVALID_SOCKET, FALSE);
+
   BIO* bio = SSL_get_wbio(ssl_socket->ssl);
   if (bio == NULL) {
       g_set_error (error, THRIFT_TRANSPORT_ERROR,