The existing null terminator in pcBuffer is overwritten with a carriage return. Without re-appending it, the QString(const char*) constructor may attempt an illegal read.
m_pConsole->outputNoFmt(KVI_OUT_SOCKETWARNING, __tr2qs("[LINK WARNING]: Socket message truncated to 512 bytes."));
}
- KviDataBuffer * pData = new KviDataBuffer(iBuflen + 2);
+ KviDataBuffer * pData = new KviDataBuffer(iBuflen + 3);
KviMemory::move(pData->data(), pcBuffer, iBuflen);
*(pData->data() + iBuflen) = '\r';
*(pData->data() + iBuflen + 1) = '\n';
+ *(pData->data() + iBuflen + 2) = '\0';
QString szMsg = (const char *)(pData->data());
szMsg.truncate(iBuflen);