From 45915a06be963619f4c1748b1dcb46e7d0f2fb78 Mon Sep 17 00:00:00 2001 From: jixiaoxu Date: Fri, 24 Dec 2021 09:26:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=8C=E8=BF=9B=E5=88=B6?= =?UTF-8?q?=E8=A7=A3=E6=9E=90=E6=96=87=E6=9C=AC=E9=97=AE=E9=A2=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libsearch/parser/binary-parser.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libsearch/parser/binary-parser.cpp b/libsearch/parser/binary-parser.cpp index 802622f..0b2376c 100644 --- a/libsearch/parser/binary-parser.cpp +++ b/libsearch/parser/binary-parser.cpp @@ -5018,6 +5018,7 @@ int KBinaryParser:: readSSTRecord(readDataParam &rdParam, ppsInfoType PPS_info, if(!eRrd.bUni) ustotalLen += uscharlen; UCHAR* chData = (UCHAR*)xmalloc(ustotalLen); + ushort ustotalLenTmp = ustotalLen; if(ulNextOff < usPartLen && (ulNextOff + ustotalLen) >= usPartLen) { ushort usIdf = usPartLen - ulNextOff; uchar chTemp[MAX_BUFF_SIZE]; @@ -5073,7 +5074,7 @@ int KBinaryParser:: readSSTRecord(readDataParam &rdParam, ppsInfoType PPS_info, qWarning() << "Unsupport excel type:" << m_strFileName; } else { ushort* usData = (ushort*)chData; - content.append(QString::fromUtf16(usData, ustotalLen/2).replace("\n", "").replace("\r", " ")).append(" ");//每个单元格数据之间使用空格,//char num/2=short num + content.append(QString::fromUtf16(usData, ustotalLenTmp/2).replace("\n", "").replace("\r", " ")).append(" ");//每个单元格数据之间使用空格,//char num/2=short num usData = (ushort*)xfree((void*)usData); chData = NULL; if(content.length() >= 682666) //20480000/3 @@ -5132,6 +5133,7 @@ ULONG KBinaryParser::readPPtRecord(FILE* pFile, ppsInfoType* PPS_info, ULONG* au } else { if(usType == PPT_TEXTBYTEATOM || usType == PPT_TEXTCHARATOM) { long llen = (long)ulLen; + long llenTmp = llen; UCHAR* chData = (UCHAR*)xmalloc(llen); if(!bReadBuffer(pFile, PPS_info->tPPTDocument.ulSB, aulBBD, tBBDLen, BIG_BLOCK_SIZE, @@ -5139,7 +5141,7 @@ ULONG KBinaryParser::readPPtRecord(FILE* pFile, ppsInfoType* PPS_info, ULONG* au return -1; ushort* usData = (ushort*)chData; - content.append(QString::fromUtf16(usData, llen/2).replace("\n", "").replace("\r", " "));//char num/2=short num + content.append(QString::fromUtf16(usData, llenTmp/2).replace("\n", "").replace("\r", " "));//char num/2=short num usData = (ushort*)xfree((void*)usData); chData = NULL;