libpurple/protocols/msn/servconn.c

branch
release-2.x.y
changeset 36256
a437550a9308
parent 30961
885064b16c54
child 36257
c5445f25f90f
--- a/libpurple/protocols/msn/servconn.c	Wed Nov 12 19:15:24 2014 -0500
+++ b/libpurple/protocols/msn/servconn.c	Thu Nov 13 00:56:55 2014 -0500
@@ -389,7 +389,7 @@
 
 		if (ret < 0 && errno == EAGAIN)
 			ret = 0;
-		if (ret >= 0 && ret < len) {
+		if (ret >= 0 && (size_t)ret < len) {
 			if (servconn->tx_handler == 0)
 				servconn->tx_handler = purple_input_add(
 					servconn->fd, PURPLE_INPUT_WRITE,
@@ -462,7 +462,8 @@
 
 		if (servconn->payload_len)
 		{
-			if (servconn->payload_len > servconn->rx_len)
+			if (servconn->rx_len < 0
+				|| servconn->payload_len > (gsize)servconn->rx_len)
 				/* The payload is still not complete. */
 				break;
 

mercurial