forked from openkylin/ukui-search
解决一处潜在的崩溃问题
This commit is contained in:
parent
35818d321e
commit
f5eaf99f6f
|
@ -4562,19 +4562,26 @@ static void vName2String(char *szName, const UCHAR *aucBytes, size_t tNameSize)
|
||||||
} /* end of vName2String */
|
} /* end of vName2String */
|
||||||
|
|
||||||
|
|
||||||
void vAdd2PropModList(const UCHAR *aucPropMod) {
|
bool vAdd2PropModList(const UCHAR *aucPropMod) {
|
||||||
size_t tSize, tLen;
|
size_t tSize, tLen;
|
||||||
|
|
||||||
if(tNextFree >= tMaxElements) {
|
if(tNextFree >= tMaxElements) {
|
||||||
tMaxElements += ELEMENTS_TO_ADD;
|
tMaxElements += ELEMENTS_TO_ADD;
|
||||||
tSize = tMaxElements * sizeof(UCHAR **);
|
tSize = tMaxElements * sizeof(UCHAR **);
|
||||||
ppAnchor = (UCHAR**)xrealloc(ppAnchor, tSize);
|
void *pvTmp;
|
||||||
|
pvTmp = realloc(ppAnchor, tSize);
|
||||||
|
if(pvTmp) {
|
||||||
|
ppAnchor = (UCHAR**)pvTmp;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tLen = 2 + (size_t)usGetWord(0, aucPropMod);
|
tLen = 2 + (size_t)usGetWord(0, aucPropMod);
|
||||||
ppAnchor[tNextFree] = (UCHAR*)xmalloc(tLen);
|
ppAnchor[tNextFree] = (UCHAR*)xmalloc(tLen);
|
||||||
memcpy(ppAnchor[tNextFree], aucPropMod, tLen);
|
memcpy(ppAnchor[tNextFree], aucPropMod, tLen);
|
||||||
tNextFree++;
|
tNextFree++;
|
||||||
|
return true;
|
||||||
} /* end of vAdd2PropModList */
|
} /* end of vAdd2PropModList */
|
||||||
|
|
||||||
static void vComputePPSlevels(ppsEntryType *atPPSlist, ppsEntryType *pNode,
|
static void vComputePPSlevels(ppsEntryType *atPPSlist, ppsEntryType *pNode,
|
||||||
|
@ -4940,7 +4947,9 @@ bool KBinaryParser::read8DocText(FILE *pFile, const ppsInfoType *pPPS,
|
||||||
}
|
}
|
||||||
if(iType == 1) {
|
if(iType == 1) {
|
||||||
iLen = (int)usGetWord(lOff, aucBuffer);
|
iLen = (int)usGetWord(lOff, aucBuffer);
|
||||||
vAdd2PropModList(aucBuffer + lOff);
|
if(!vAdd2PropModList(aucBuffer + lOff)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
lOff += (long)iLen + 2;
|
lOff += (long)iLen + 2;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue