Fix memory leak in mvccRestore

Former-commit-id: 92da1cbd0a08b66264f170a9b57ef7270f270157
This commit is contained in:
John Sully 2021-02-07 23:38:09 +00:00
parent 483b43156e
commit ea74c705a6
2 changed files with 10 additions and 7 deletions

View File

@ -48,8 +48,8 @@ endif
USEASM?=true
ifneq ($(strip $(SANITIZE)),)
CFLAGS+= -fsanitize=$(SANITIZE) -DSANITIZE
CXXFLAGS+= -fsanitize=$(SANITIZE) -DSANITIZE
CFLAGS+= -fsanitize=$(SANITIZE) -DSANITIZE -fno-omit-frame-pointer
CXXFLAGS+= -fsanitize=$(SANITIZE) -DSANITIZE -fno-omit-frame-pointer
LDFLAGS+= -fsanitize=$(SANITIZE)
MALLOC=libc
USEASM=false

View File

@ -5071,12 +5071,15 @@ void mvccrestoreCommand(client *c) {
setMvccTstamp(obj, mvcc);
/* Create the key and set the TTL if any */
dbMerge(c->db,key,obj,true);
if (dbMerge(c->db,key,obj,true)) {
if (expire >= 0) {
setExpire(c,c->db,key,nullptr,expire);
}
signalModifiedKey(c,c->db,key);
notifyKeyspaceEvent(NOTIFY_GENERIC,"restore",key,c->db->id);
} else {
decrRefCount(obj);
}
addReply(c,shared.ok);
g_pserver->dirty++;
}