summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcharsyam <charsyam@gmail.com>2018-02-27 21:46:19 +0900
committerantirez <antirez@gmail.com>2018-03-02 12:37:11 +0100
commit640fa434f5da57d55a794b5c819c355a3a804e6c (patch)
tree9e82f25de388913326d3f6d0a9bef17a22936e42
parent83390f55e5b78a1618a81528993bdb7a0c259980 (diff)
downloadredis-640fa434f5da57d55a794b5c819c355a3a804e6c.tar.gz
fix-out-of-index-range-for-redis-cli-findbigkey
-rw-r--r--src/redis-cli.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/redis-cli.c b/src/redis-cli.c
index b91d0c2fb..3b9f3721e 100644
--- a/src/redis-cli.c
+++ b/src/redis-cli.c
@@ -2074,7 +2074,9 @@ static void pipeMode(void) {
#define TYPE_SET 2
#define TYPE_HASH 3
#define TYPE_ZSET 4
-#define TYPE_NONE 5
+#define TYPE_STREAM 5
+#define TYPE_NONE 6
+#define TYPE_MAX_KEYS TYPE_NONE
static redisReply *sendScan(unsigned long long *it) {
redisReply *reply = redisCommand(context, "SCAN %llu", *it);
@@ -2218,10 +2220,10 @@ static void getKeySizes(redisReply *keys, int *types,
}
static void findBigKeys(void) {
- unsigned long long biggest[5] = {0}, counts[5] = {0}, totalsize[5] = {0};
+ unsigned long long biggest[TYPE_MAX_KEYS] = {0}, counts[TYPE_MAX_KEYS] = {0}, totalsize[TYPE_MAX_KEYS] = {0};
unsigned long long sampled = 0, total_keys, totlen=0, *sizes=NULL, it=0;
- sds maxkeys[5] = {0};
- char *typename[] = {"string","list","set","hash","zset"};
+ sds maxkeys[TYPE_MAX_KEYS] = {0};
+ char *typename[] = {"string","list","set","hash","zset","stream"};
char *typeunit[] = {"bytes","items","members","fields","members"};
redisReply *reply, *keys;
unsigned int arrsize=0, i;