summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormichael-grunder <michael.grunder@gmail.com>2014-07-11 13:03:26 -0700
committermichael-grunder <michael.grunder@gmail.com>2014-07-11 13:03:26 -0700
commitce8a68b1fdf5c26d06d2e2972109881bd16e6856 (patch)
tree773fec4d49ad9bf7b16f00c7d1d97c07cdc60c2e
parent6382936ebcffb893e6f404bdafb058ed3150f8ec (diff)
downloadredis-ce8a68b1fdf5c26d06d2e2972109881bd16e6856.tar.gz
Fix OBJECT arity
Previously, the command definition for the OBJECT command specified a minimum of two args (and that it was variadic), which meant that if you sent this: OBJECT foo When cluster was enabled, it would result in an assertion/SEGFAULT when Redis was attempting to extract keys. It appears that OBJECT is not variadic, and only ever takes 3 args. https://gist.github.com/michael-grunder/25960ce1508396d0d36a
-rw-r--r--src/object.c2
-rw-r--r--src/redis.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/object.c b/src/object.c
index 501dcc32f..2cf9e04fd 100644
--- a/src/object.c
+++ b/src/object.c
@@ -696,7 +696,7 @@ robj *objectCommandLookupOrReply(redisClient *c, robj *key, robj *reply) {
}
/* Object command allows to inspect the internals of an Redis Object.
- * Usage: OBJECT <verb> ... arguments ... */
+ * Usage: OBJECT <refcount|encoding|idletime> <key> */
void objectCommand(redisClient *c) {
robj *o;
diff --git a/src/redis.c b/src/redis.c
index ec9a84dc4..1976cc4db 100644
--- a/src/redis.c
+++ b/src/redis.c
@@ -266,7 +266,7 @@ struct redisCommand redisCommandTable[] = {
{"readonly",readonlyCommand,1,"rF",0,NULL,0,0,0,0,0},
{"readwrite",readwriteCommand,1,"rF",0,NULL,0,0,0,0,0},
{"dump",dumpCommand,2,"ar",0,NULL,1,1,1,0,0},
- {"object",objectCommand,-2,"r",0,NULL,2,2,2,0,0},
+ {"object",objectCommand,3,"r",0,NULL,2,2,2,0,0},
{"client",clientCommand,-2,"ar",0,NULL,0,0,0,0,0},
{"eval",evalCommand,-3,"s",0,evalGetKeys,0,0,0,0,0},
{"evalsha",evalShaCommand,-3,"s",0,evalGetKeys,0,0,0,0,0},