--- centericq-4.21.0.orig/libicq2000-0.1/src/DirectClient.cpp +++ centericq-4.21.0/libicq2000-0.1/src/DirectClient.cpp @@ -162,6 +162,7 @@ m_recv.setLittleEndian(); m_recv >> length; + if (length == 0) return; // short read, toss it back (nothing to do) if (length > Incoming_Packet_Limit) throw ParseException("Received too long incoming packet"); if (m_recv.remains() < length) return; // waiting for more of the packet