Author: carnold Date: Tue Dec 18 10:03:28 2007 New Revision: 605275 URL: http://svn.apache.org/viewvc?rev=605275&view=rev Log: LOGCXX-7: Check for zero sized array and buffer
Modified: logging/log4cxx/trunk/src/main/cpp/socketoutputstream.cpp Modified: logging/log4cxx/trunk/src/main/cpp/socketoutputstream.cpp URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/socketoutputstream.cpp?rev=605275&r1=605274&r2=605275&view=diff ============================================================================== --- logging/log4cxx/trunk/src/main/cpp/socketoutputstream.cpp (original) +++ logging/log4cxx/trunk/src/main/cpp/socketoutputstream.cpp Tue Dec 18 10:03:28 2007 @@ -38,15 +38,19 @@ } void SocketOutputStream::flush(Pool& p) { - socket->write(&array[0], array.size()); - array.resize(0); + if (array.size() > 0) { + socket->write(&array[0], array.size()); + array.resize(0); + } } void SocketOutputStream::write(ByteBuffer& buf, Pool& /* p */ ) { - size_t sz = array.size(); - array.resize(sz + buf.remaining()); - memcpy(&array[sz], buf.current(), buf.remaining()); - buf.position(buf.limit()); + if (buf.remaining() > 0) { + size_t sz = array.size(); + array.resize(sz + buf.remaining()); + memcpy(&array[sz], buf.current(), buf.remaining()); + buf.position(buf.limit()); + } }