From 739ba0d21119778438c36ea60fdb263271783468 Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Fri, 7 May 2010 12:59:34 +0200 Subject: [PATCH] add sanity check to zunionInterBlockClientOnSwappedKeys, as the number of keys used is provided as argument to the function --- redis.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/redis.c b/redis.c index 55a2ac213..46f97273a 100644 --- a/redis.c +++ b/redis.c @@ -9562,13 +9562,15 @@ static void waitForMultipleSwappedKeys(redisClient *c, struct redisCommand *cmd, } } -/* Preload keys needed for the ZUNION and ZINTER commands. */ +/* Preload keys needed for the ZUNION and ZINTER commands. + * Note that the number of keys to preload is user-defined, so we need to + * apply a sanity check against argc. */ static void zunionInterBlockClientOnSwappedKeys(redisClient *c, struct redisCommand *cmd, int argc, robj **argv) { int i, num; REDIS_NOTUSED(cmd); - REDIS_NOTUSED(argc); num = atoi(argv[2]->ptr); + if (num > (argc-3)) return; for (i = 0; i < num; i++) { waitForSwappedKey(c,argv[3+i]); } -- GitLab