From b6ab4d04b60548fcc5c04d2da53a8af0c3d59593 Mon Sep 17 00:00:00 2001 From: Yossi Gottlieb Date: Mon, 12 Dec 2016 20:18:40 +0200 Subject: [PATCH] Fix redis-cli rare crash. This happens if the server (mysteriously) returns an unexpected response to the COMMAND command. --- src/redis-cli.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/redis-cli.c b/src/redis-cli.c index 85ca404f..ac435822 100644 --- a/src/redis-cli.c +++ b/src/redis-cli.c @@ -275,6 +275,10 @@ static void cliIntegrateHelp(void) { * don't already match what we have. */ for (size_t j = 0; j < reply->elements; j++) { redisReply *entry = reply->element[j]; + if (entry->type != REDIS_REPLY_ARRAY || entry->elements < 4 || + entry->element[0]->type != REDIS_REPLY_STRING || + entry->element[1]->type != REDIS_REPLY_INTEGER || + entry->element[3]->type != REDIS_REPLY_INTEGER) return; char *cmdname = entry->element[0]->str; int i;