Index: src/libchcore/TOverlappedDataBuffer.cpp
===================================================================
diff -u -r3ccbdb8d3eac3427e6d3354854476e57fdc7ceb9 -rbef894e38e5c1486824787cf8c47a87a0828b228
--- src/libchcore/TOverlappedDataBuffer.cpp	(.../TOverlappedDataBuffer.cpp)	(revision 3ccbdb8d3eac3427e6d3354854476e57fdc7ceb9)
+++ src/libchcore/TOverlappedDataBuffer.cpp	(.../TOverlappedDataBuffer.cpp)	(revision bef894e38e5c1486824787cf8c47a87a0828b228)
@@ -58,6 +58,9 @@
 
 	void TOverlappedDataBuffer::ReinitializeBuffer(size_t stNewBufferSize)
 	{
+		if (stNewBufferSize == 0)
+			throw TCoreException(eErr_InvalidArgument, L"Cannot create 0-sized buffer", LOCATION);
+
 		if (stNewBufferSize != m_stBufferSize)
 		{
 			ReleaseBuffer();
@@ -111,5 +114,6 @@
 		SetErrorCode(ERROR_SUCCESS);
 		SetStatusCode(0);
 		SetBytesTransferred(0);
+		SetParam(nullptr);
 	}
 }