Socket Server code: AcceptEx server memory leak

The latest version of The Server Framework contains a memory leak in the CSocketServerEx class. It’s quite a good leak, it leaks an IO buffer on every connection attempt. The fix is as follows:

Change this code:

void CStreamSocketServerEx::PostAcceptRequest()
{
   if (m_listeningSocket != INVALID_SOCKET)
   {
      if (m_connectionLimiter.CanCreateConnection())
      {
         IncrementPendingReceives();

         const IFullAddress &address = GetAddress();

         IStreamSocketEx *pSocket = AllocateSocket(CreateSocket(address.Type())).Detach();

         IBuffer *pBuffer = AllocateBuffer();

         pBuffer->SetUserPtr(m_socketIndex, pSocket);

         PostIoOperation(pBuffer, IO_Accept_Request);
      }
      else

to this:

void CStreamSocketServerEx::PostAcceptRequest()
{
   if (m_listeningSocket != INVALID_SOCKET)
   {
      if (m_connectionLimiter.CanCreateConnection())
      {
         IncrementPendingReceives();

         const IFullAddress &address = GetAddress();

         IStreamSocketEx *pSocket = AllocateSocket(CreateSocket(address.Type())).Detach();

         CSmartBuffer buffer(AllocateBuffer());

         buffer.Get()->SetUserPtr(m_socketIndex, pSocket);

         PostIoOperation(buffer.Get(), IO_Accept_Request);
      }
      else