diff options
author | michael-grunder <michael.grunder@gmail.com> | 2014-07-11 13:03:26 -0700 |
---|---|---|
committer | michael-grunder <michael.grunder@gmail.com> | 2014-07-11 13:03:26 -0700 |
commit | ce8a68b1fdf5c26d06d2e2972109881bd16e6856 (patch) | |
tree | 773fec4d49ad9bf7b16f00c7d1d97c07cdc60c2e | |
parent | 6382936ebcffb893e6f404bdafb058ed3150f8ec (diff) | |
download | redis-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.c | 2 | ||||
-rw-r--r-- | src/redis.c | 2 |
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}, |