You are not allowed to set a subkey expire if the subkey does not exist
Former-commit-id: 12e17cfd6e9cc1e470f26c88b58ce5831d10358f
This commit is contained in:
parent
0e82cb44e5
commit
6310847d61
@ -156,7 +156,7 @@ void expireMemberCore(client *c, robj *key, robj *subkey, long long basetime, lo
|
||||
when += basetime;
|
||||
|
||||
/* No key, return zero. */
|
||||
dictEntry *de = dictFind(c->db->pdict, szFromObj(c->argv[1]));
|
||||
dictEntry *de = dictFind(c->db->pdict, szFromObj(key));
|
||||
if (de == NULL) {
|
||||
addReply(c,shared.czero);
|
||||
return;
|
||||
@ -167,7 +167,10 @@ void expireMemberCore(client *c, robj *key, robj *subkey, long long basetime, lo
|
||||
switch (val->type)
|
||||
{
|
||||
case OBJ_SET:
|
||||
// these types are safe
|
||||
if (!setTypeIsMember(val, szFromObj(subkey))) {
|
||||
addReplyError(c, "subkey does not exist");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -175,7 +178,7 @@ void expireMemberCore(client *c, robj *key, robj *subkey, long long basetime, lo
|
||||
return;
|
||||
}
|
||||
|
||||
setExpire(c, c->db, c->argv[1], c->argv[2], when);
|
||||
setExpire(c, c->db, key, subkey, when);
|
||||
|
||||
addReply(c, shared.ok);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user