提交 b6f07345 编写于 作者: P Pieter Noordhuis

check object type in lookupKeyByPattern

上级 705dad38
......@@ -6533,6 +6533,10 @@ static robj *lookupKeyByPattern(redisDb *db, robj *pattern, robj *subst) {
initStaticStringObject(fieldobj,((char*)&fieldname)+(sizeof(long)*2));
o = hashGet(o, &fieldobj);
} else {
if (o->type != REDIS_STRING) {
return NULL;
}
/* Every object that this function returns needs to have its refcount
* increased. sortCommand decreases it again. */
incrRefCount(o);
......@@ -6707,10 +6711,6 @@ static void sortCommand(redisClient *c) {
/* lookup value to sort by */
byval = lookupKeyByPattern(c->db,sortby,vector[j].obj);
if (!byval) continue;
if (byval->type != REDIS_STRING) {
decrRefCount(byval);
continue;
}
} else {
/* use object itself to sort by */
byval = vector[j].obj;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册