2005-05-05 Mikael Hallendal <micke@imendio.com>
authorhallski <hallski>
Thu, 5 May 2005 19:07:15 +0000 (19:07 +0000)
committerhallski <hallski>
Thu, 5 May 2005 19:07:15 +0000 (19:07 +0000)
* loudmouth/lm-ssl.c: (_lm_ssl_read):
- Don't accidently return a negative bytes_read.
- Fixes LM-3, reported by Daniel Lavalliere.

ChangeLog
loudmouth/lm-ssl.c

index 213b88e041d001b1e17ece5083c8c2acce73fcd1..444557716f39af99c2badd912359fbc21937dff3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2005-05-05  Mikael Hallendal  <micke@imendio.com>
+
+       * loudmouth/lm-ssl.c: (_lm_ssl_read):
+       - Don't accidently return a negative bytes_read.
+       - Fixes LM-3, reported by Daniel Lavalliere.
+
 2005-05-05  Mikael Hallendal  <micke@imendio.com>
 
        * loudmouth/lm-connection.c: (connection_free):
index d3e8eebbdf390d16e96a99736f1ea3b2edb3e0ed..ec89ed1302df4f2a9466cb702a333dccee9cb6d8 100644 (file)
@@ -202,8 +202,10 @@ GIOStatus
 _lm_ssl_read (LmSSL *ssl, gchar *buf, gint len, gsize *bytes_read)
 {
        GIOStatus status;
-       
-       *bytes_read = gnutls_record_recv (ssl->gnutls_session, buf, len);
+       gint      b_read;
+
+       *bytes_read = 0;
+       b_read = gnutls_record_recv (ssl->gnutls_session, buf, len);
 
        //g_print ("%d bytes read\n", size);
 
@@ -211,12 +213,12 @@ _lm_ssl_read (LmSSL *ssl, gchar *buf, gint len, gsize *bytes_read)
                status = G_IO_STATUS_AGAIN;
        }
        else if (*bytes_read > len) {
-               *bytes_read = 0;
                status = G_IO_STATUS_EOF;
        }
        else if (*bytes_read < 0) {
                status = G_IO_STATUS_ERROR;
        } else {
+               *bytes_read = (guint) b_read;
                status = G_IO_STATUS_NORMAL;
        }