Fix CMessage::GetParams() crash - thanks kerio

This commit is contained in:
J-P Nurmi
2015-09-05 23:45:26 +02:00
parent ce0ddd3aac
commit 50ed9adf8a
2 changed files with 43 additions and 5 deletions
+9 -5
View File
@@ -38,13 +38,17 @@ void CMessage::Clone(const CMessage& Message)
CString CMessage::GetParams(unsigned int uIdx, unsigned int uLen) const
{
VCString vsParams;
if (uLen > m_vsParams.size() - uIdx - 1) {
uLen = m_vsParams.size() - uIdx - 1;
if (m_vsParams.empty() || uLen == 0) {
return "";
}
for (unsigned int i = uIdx; i <= uIdx + uLen; ++i) {
if (uLen > m_vsParams.size() - uIdx - 1) {
uLen = m_vsParams.size() - uIdx;
}
VCString vsParams;
unsigned uParams = m_vsParams.size();
for (unsigned int i = uIdx; i < uIdx + uLen; ++i) {
CString sParam = m_vsParams[i];
if (sParam.Contains(" ")) {
if (i > uIdx && i == uParams - 1 && (sParam.empty() || sParam.StartsWith(":") || sParam.Contains(" "))) {
sParam = ":" + sParam;
}
vsParams.push_back(sParam);