mirror of
http://github.com/valkey-io/valkey
synced 2024-11-22 18:54:58 +00:00
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:
parent
6276434ad2
commit
46c31a150a
@ -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++) {
|
||||
|
@ -145,6 +145,12 @@ start_server {tags {"scripting"}} {
|
||||
set e
|
||||
} {*not allowed after*}
|
||||
|
||||
test {EVAL - No arguments to redis.call/pcall is considered an error} {
|
||||
set e {}
|
||||
catch {r eval {return redis.call()} 0} e
|
||||
set e
|
||||
} {*one argument*}
|
||||
|
||||
test {EVAL - redis.call variant raises a Lua error on Redis cmd error (1)} {
|
||||
set e {}
|
||||
catch {
|
||||
|
Loading…
Reference in New Issue
Block a user