Merge pull request #28164 from taosdata/postfix/3.0/TD-32356
postfix ctg dbCache heap use after free
This commit is contained in:
commit
874a788959
|
@ -812,6 +812,7 @@ int32_t tsdbRowMergerAdd(SRowMerger *pMerger, TSDBROW *pRow, STSchema *pTSchema)
|
|||
if (!COL_VAL_IS_NONE(pColVal)) {
|
||||
if (IS_VAR_DATA_TYPE(pColVal->value.type)) {
|
||||
SColVal *pTColVal = taosArrayGet(pMerger->pArray, iCol);
|
||||
if (!pTColVal) return terrno;
|
||||
if (!COL_VAL_IS_NULL(pColVal)) {
|
||||
code = tRealloc(&pTColVal->value.pData, pColVal->value.nData);
|
||||
if (code) return code;
|
||||
|
|
|
@ -1608,12 +1608,14 @@ int32_t ctgDropTSMAForTbEnqueue(SCatalog *pCtg, SName *pName, bool syncOp) {
|
|||
code = createDropAllTbTsmaCtgCacheOp(pCtg, pCache, syncOp, &pOp);
|
||||
}
|
||||
CTG_UNLOCK(CTG_READ, &pCtgCache->tsmaLock);
|
||||
taosHashRelease(pDbCache->tsmaCache, pCtgCache);
|
||||
pCtgCache = NULL;
|
||||
ctgReleaseDBCache(pCtg, pDbCache);
|
||||
pDbCache = NULL;
|
||||
|
||||
CTG_ERR_JRET(code);
|
||||
|
||||
CTG_ERR_JRET(ctgEnqueue(pCtg, pOp));
|
||||
taosHashRelease(pDbCache->tsmaCache, pCtgCache);
|
||||
ctgReleaseDBCache(pCtg, pDbCache);
|
||||
|
||||
return TSDB_CODE_SUCCESS;
|
||||
|
||||
|
|
Loading…
Reference in New Issue