diff --git a/src/rdb.cpp b/src/rdb.cpp index 8ae4a0651..a3351fe59 100644 --- a/src/rdb.cpp +++ b/src/rdb.cpp @@ -1632,9 +1632,17 @@ robj *rdbLoadObject(int rdbtype, rio *rdb, robj *key, uint64_t mvcc_tstamp) { len--; /* Load raw strings */ if ((field = (sds)rdbGenericLoadStringObject(rdb,RDB_LOAD_SDS,NULL)) - == NULL) return NULL; + == NULL) + { + decrRefCount(o); + return NULL; + } if ((value = (sds)rdbGenericLoadStringObject(rdb,RDB_LOAD_SDS,NULL)) - == NULL) return NULL; + == NULL) + { + decrRefCount(o); + return NULL; + } /* Add pair to ziplist */ o->m_ptr = ziplistPush((unsigned char*)ptrFromObj(o), (unsigned char*)field, @@ -1663,9 +1671,17 @@ robj *rdbLoadObject(int rdbtype, rio *rdb, robj *key, uint64_t mvcc_tstamp) { len--; /* Load encoded strings */ if ((field = (sds)rdbGenericLoadStringObject(rdb,RDB_LOAD_SDS,NULL)) - == NULL) return NULL; + == NULL) + { + decrRefCount(o); + return NULL; + } if ((value = (sds)rdbGenericLoadStringObject(rdb,RDB_LOAD_SDS,NULL)) - == NULL) return NULL; + == NULL) + { + decrRefCount(o); + return NULL; + } /* Add pair to hash table */ ret = dictAdd((dict*)ptrFromObj(o), field, value);