mirror of
https://codeberg.org/redict/redict.git
synced 2025-01-22 16:18:28 -05:00
Fixed segfault in freeMemoryIfNeeded due to the fact that keys are now sds strings and not objects in the main hash table, thanks to Anthony Lauzon for spotting the bug and providing a patch.
This commit is contained in:
parent
2df84b7269
commit
357d36733d
@ -1321,7 +1321,8 @@ void freeMemoryIfNeeded(void) {
|
||||
if (tryFreeOneObjectFromFreelist() == REDIS_OK) continue;
|
||||
for (j = 0; j < server.dbnum; j++) {
|
||||
int minttl = -1;
|
||||
robj *minkey = NULL;
|
||||
sds minkey = NULL;
|
||||
robj *keyobj = NULL;
|
||||
struct dictEntry *de;
|
||||
|
||||
if (dictSize(server.db[j].expires)) {
|
||||
@ -1338,7 +1339,9 @@ void freeMemoryIfNeeded(void) {
|
||||
minttl = t;
|
||||
}
|
||||
}
|
||||
dbDelete(server.db+j,minkey);
|
||||
keyobj = createStringObject(minkey,sdslen(minkey));
|
||||
dbDelete(server.db+j,keyobj);
|
||||
decrRefCount(keyobj);
|
||||
}
|
||||
}
|
||||
if (!freed) return; /* nothing to free... */
|
||||
|
Loading…
Reference in New Issue
Block a user