From 269760edbbf6cdebe1c00040234b1fa6ba8851ce Mon Sep 17 00:00:00 2001 From: "zhaozhao.zz" Date: Thu, 21 Sep 2017 14:19:21 +0800 Subject: [PATCH] Lazyfree: avoid memory leak when free slowlog entry --- src/slowlog.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/slowlog.c b/src/slowlog.c index 805ee1d7..a9514715 100644 --- a/src/slowlog.c +++ b/src/slowlog.c @@ -72,9 +72,12 @@ slowlogEntry *slowlogCreateEntry(client *c, robj **argv, int argc, long long dur (unsigned long) sdslen(argv[j]->ptr) - SLOWLOG_ENTRY_MAX_STRING); se->argv[j] = createObject(OBJ_STRING,s); - } else { + } else if (argv[j]->refcount == OBJ_SHARED_REFCOUNT) { se->argv[j] = argv[j]; - incrRefCount(argv[j]); + } else { + /* Duplicate a string object, + * avoid memory leak for lazyfree. */ + se->argv[j] = dupStringObject(argv[j]); } } }