summaryrefslogtreecommitdiff
path: root/src/slowlog.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/slowlog.c')
-rw-r--r--src/slowlog.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/slowlog.c b/src/slowlog.c
index 805ee1d77..a95147153 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]);
}
}
}