fix: set output value to null if zero-length
This commit is contained in:
parent
c4d59126d7
commit
451b6a451d
|
@ -1715,16 +1715,20 @@ int tdbBtreeNext(SBTC *pBtc, void **ppKey, int *kLen, void **ppVal, int *vLen) {
|
||||||
memcpy(pKey, cd.pKey, cd.kLen);
|
memcpy(pKey, cd.pKey, cd.kLen);
|
||||||
|
|
||||||
if (ppVal) {
|
if (ppVal) {
|
||||||
// TODO: vLen may be zero
|
if (cd.vLen > 0) {
|
||||||
pVal = tdbRealloc(*ppVal, cd.vLen);
|
pVal = tdbRealloc(*ppVal, cd.vLen);
|
||||||
if (pVal == NULL) {
|
if (pVal == NULL) {
|
||||||
tdbFree(pKey);
|
tdbFree(pKey);
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy(pVal, cd.pVal, cd.vLen);
|
||||||
|
} else {
|
||||||
|
pVal = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
*ppVal = pVal;
|
*ppVal = pVal;
|
||||||
*vLen = cd.vLen;
|
*vLen = cd.vLen;
|
||||||
memcpy(pVal, cd.pVal, cd.vLen);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = tdbBtcMoveToNext(pBtc);
|
ret = tdbBtcMoveToNext(pBtc);
|
||||||
|
|
Loading…
Reference in New Issue