diff --git a/src/t_list.cpp b/src/t_list.cpp index 6024f8315..caa26e1ae 100644 --- a/src/t_list.cpp +++ b/src/t_list.cpp @@ -402,7 +402,7 @@ void lrangeCommand(client *c) { if ((getLongFromObjectOrReply(c, c->argv[2], &start, NULL) != C_OK) || (getLongFromObjectOrReply(c, c->argv[3], &end, NULL) != C_OK)) return; - if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.null[c->resp])) == NULL + if ((o = lookupKeyReadOrReply(c,c->argv[1],(c->resp < 3) ? shared.emptyarray : shared.null[c->resp])) == NULL || checkType(c,o,OBJ_LIST)) return; llen = listTypeLength(o); diff --git a/src/t_set.cpp b/src/t_set.cpp index 42266666d..998c0b7dc 100644 --- a/src/t_set.cpp +++ b/src/t_set.cpp @@ -813,7 +813,10 @@ void sinterGenericCommand(client *c, robj **setkeys, } addReply(c,shared.czero); } else { - addReplyNull(c); + if (c->resp >= 3) + addReplyNull(c); + else + addReply(c, shared.emptyarray); } return; } diff --git a/src/t_zset.cpp b/src/t_zset.cpp index 7476034de..f7564b90c 100644 --- a/src/t_zset.cpp +++ b/src/t_zset.cpp @@ -2427,7 +2427,7 @@ void zrangeGenericCommand(client *c, int reverse) { return; } - if ((zobj = lookupKeyReadOrReply(c,key,shared.null[c->resp])) == NULL + if ((zobj = lookupKeyReadOrReply(c,key,(c->resp < 3) ? shared.emptyarray : shared.null[c->resp])) == NULL || checkType(c,zobj,OBJ_ZSET)) return; /* Sanitize indexes. */ @@ -2575,7 +2575,7 @@ void genericZrangebyscoreCommand(client *c, int reverse) { } /* Ok, lookup the key and get the range */ - if ((zobj = lookupKeyReadOrReply(c,key,shared.null[c->resp])) == NULL || + if ((zobj = lookupKeyReadOrReply(c,key,(c->resp < 3) ? shared.emptyarray : shared.null[c->resp])) == NULL || checkType(c,zobj,OBJ_ZSET)) return; if (zobj->encoding == OBJ_ENCODING_ZIPLIST) {