--- a/libpurple/protocols/mxit/protocol.c Sun May 15 05:41:39 2016 -0300 +++ b/libpurple/protocols/mxit/protocol.c Thu Jun 02 15:41:02 2016 -0500 @@ -2806,8 +2806,9 @@ /* the end of the length record found */ session->rx_lbuf[session->rx_i] = '\0'; session->rx_res = atoi( &session->rx_lbuf[3] ); - if ( session->rx_res > CP_MAX_PACKET ) { + if ( ( session->rx_res <= 0 ) || ( session->rx_res > CP_MAX_PACKET ) ) { purple_connection_error( session->con, _( "A connection error occurred to MXit. (read stage 0x03)" ) ); + return; } session->rx_state = RX_STATE_DATA; session->rx_i = 0;