summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSalvatore Sanfilippo <antirez@gmail.com>2017-09-21 12:32:02 +0200
committerGitHub <noreply@github.com>2017-09-21 12:32:02 +0200
commitfa2c0582cfa614cd854b4a64ddce1493da9317bb (patch)
tree76601586e76549ddd1d71212868aafe564c74006
parentbb3b5ddd1968d2715acc37b63124ccf461276160 (diff)
parent269760edbbf6cdebe1c00040234b1fa6ba8851ce (diff)
downloadredis-fa2c0582cfa614cd854b4a64ddce1493da9317bb.tar.gz
Merge pull request #4324 from soloestoy/lazyfree-fix-memory-leak
Lazyfree: avoid memory leak when free slowlog entry
-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]);
}
}
}