Scripting: require at least one argument for redis.call().

Redis used to crash with a call like the following:

    EVAL "redis.call()" 0

Now the explicit check for at least one argument prevents the problem.

This commit fixes issue #655.
This commit is contained in:
antirez
2012-08-31 10:22:21 +02:00
parent 13732168a5
commit edfaa64f49
2 changed files with 13 additions and 0 deletions

View File

@ -167,6 +167,13 @@ int luaRedisGenericCommand(lua_State *lua, int raise_error) {
redisClient *c = server.lua_client;
sds reply;
/* Require at least one argument */
if (argc == 0) {
luaPushError(lua,
"Please specify at least one argument for redis.call()");
return 1;
}
/* Build the arguments vector */
argv = zmalloc(sizeof(robj*)*argc);
for (j = 0; j < argc; j++) {