fix(meta/query): return oom before memcpy
This commit is contained in:
parent
f55fb03fae
commit
f303a9529f
|
@ -1440,6 +1440,11 @@ int32_t metaGetTableTags(void *pVnode, uint64_t suid, SArray *pUidTagInfo) {
|
||||||
|
|
||||||
STUidTagInfo info = {.uid = uid, .pTagVal = pCur->pVal};
|
STUidTagInfo info = {.uid = uid, .pTagVal = pCur->pVal};
|
||||||
info.pTagVal = taosMemoryMalloc(pCur->vLen);
|
info.pTagVal = taosMemoryMalloc(pCur->vLen);
|
||||||
|
if (!info.pTagVal) {
|
||||||
|
metaCloseCtbCursor(pCur);
|
||||||
|
taosHashCleanup(pSepecifiedUidMap);
|
||||||
|
return TSDB_CODE_OUT_OF_MEMORY;
|
||||||
|
}
|
||||||
memcpy(info.pTagVal, pCur->pVal, pCur->vLen);
|
memcpy(info.pTagVal, pCur->pVal, pCur->vLen);
|
||||||
if (taosArrayPush(pUidTagInfo, &info) == NULL) {
|
if (taosArrayPush(pUidTagInfo, &info) == NULL) {
|
||||||
metaCloseCtbCursor(pCur);
|
metaCloseCtbCursor(pCur);
|
||||||
|
@ -1462,6 +1467,11 @@ int32_t metaGetTableTags(void *pVnode, uint64_t suid, SArray *pUidTagInfo) {
|
||||||
STUidTagInfo *pTagInfo = taosArrayGet(pUidTagInfo, *index);
|
STUidTagInfo *pTagInfo = taosArrayGet(pUidTagInfo, *index);
|
||||||
if (pTagInfo->pTagVal == NULL) {
|
if (pTagInfo->pTagVal == NULL) {
|
||||||
pTagInfo->pTagVal = taosMemoryMalloc(pCur->vLen);
|
pTagInfo->pTagVal = taosMemoryMalloc(pCur->vLen);
|
||||||
|
if (!pTagInfo->pTagVal) {
|
||||||
|
metaCloseCtbCursor(pCur);
|
||||||
|
taosHashCleanup(pSepecifiedUidMap);
|
||||||
|
return TSDB_CODE_OUT_OF_MEMORY;
|
||||||
|
}
|
||||||
memcpy(pTagInfo->pTagVal, pCur->pVal, pCur->vLen);
|
memcpy(pTagInfo->pTagVal, pCur->pVal, pCur->vLen);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue