From 6e11ef30e02932917ba53c72cf66681f42ea487d Mon Sep 17 00:00:00 2001 From: antirez Date: Thu, 25 Oct 2018 11:36:24 +0200 Subject: [PATCH] Fix XRANGE COUNT option for value of 0. --- src/t_stream.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/t_stream.c b/src/t_stream.c index 26b1e3c7..ec7d2dd3 100644 --- a/src/t_stream.c +++ b/src/t_stream.c @@ -1260,7 +1260,7 @@ void xrangeGenericCommand(client *c, int rev) { robj *o; stream *s; streamID startid, endid; - long long count = 0; + long long count = -1; robj *startarg = rev ? c->argv[3] : c->argv[2]; robj *endarg = rev ? c->argv[2] : c->argv[3]; @@ -1287,7 +1287,13 @@ void xrangeGenericCommand(client *c, int rev) { if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.emptymultibulk)) == NULL || checkType(c,o,OBJ_STREAM)) return; s = o->ptr; - streamReplyWithRange(c,s,&startid,&endid,count,rev,NULL,NULL,0,NULL); + + if (count == 0) { + addReply(c,shared.nullmultibulk); + } else { + if (count == -1) count = 0; + streamReplyWithRange(c,s,&startid,&endid,count,rev,NULL,NULL,0,NULL); + } } /* XRANGE key start end [COUNT ] */