重要更新 – 请 QXML、QJson、QMsgPack、QLog、QWorker 用户更新

【问题描述】

该问题是由于 TQStringCatHelperW.Cat 函数在连接字符串时,计算需要的内存缓冲区大小不正确,可能造成构造较长的结果字符串时结果不正确,甚至可能出现 Access Volition 错误。问题发生在下面两个函数:

function TQStringCatHelperW.Cat(p: PQCharW; len: Integer): TQStringCatHelperW;
function TQStringCatHelperW.Cat(c: QCharW): TQStringCatHelperW;

两个函数中判断长度用的是 IntPtr(FDest)-IntPtr(FStart)>=FSize ,实际应为 Postion >= FSize。

【严重级别】

【更新级别】

建议

【特别感谢】

etarelecca 报告

分享到: