cache/serialize: nullize pData if zero-length
This commit is contained in:
parent
5349fac910
commit
e0f0536d2d
|
@ -159,7 +159,11 @@ SLastCol *tsdbCacheDeserialize(char const *value) {
|
|||
SLastCol *pLastCol = (SLastCol *)value;
|
||||
SColVal *pColVal = &pLastCol->colVal;
|
||||
if (IS_VAR_DATA_TYPE(pColVal->type)) {
|
||||
pColVal->value.pData = (char *)value + sizeof(*pLastCol);
|
||||
if (pColVal->value.nData > 0) {
|
||||
pColVal->value.pData = (char *)value + sizeof(*pLastCol);
|
||||
} else {
|
||||
pColVal->value.pData = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return pLastCol;
|
||||
|
@ -177,8 +181,10 @@ void tsdbCacheSerialize(SLastCol *pLastCol, char **value, size_t *size) {
|
|||
if (IS_VAR_DATA_TYPE(pColVal->type)) {
|
||||
uint8_t *pVal = pColVal->value.pData;
|
||||
pColVal->value.pData = *value + sizeof(*pLastCol);
|
||||
if (pColVal->value.nData) {
|
||||
if (pColVal->value.nData > 0) {
|
||||
memcpy(pColVal->value.pData, pVal, pColVal->value.nData);
|
||||
} else {
|
||||
pColVal->value.pData = NULL;
|
||||
}
|
||||
}
|
||||
*size = length;
|
||||
|
|
|
@ -208,7 +208,7 @@ void* tsdbCacherowsReaderClose(void* pReader) {
|
|||
|
||||
static void freeItem(void* pItem) {
|
||||
SLastCol* pCol = (SLastCol*)pItem;
|
||||
if (IS_VAR_DATA_TYPE(pCol->colVal.type)) {
|
||||
if (IS_VAR_DATA_TYPE(pCol->colVal.type) && pCol->colVal.value.pData) {
|
||||
taosMemoryFree(pCol->colVal.value.pData);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue