diff options
author | antirez <antirez@gmail.com> | 2011-03-04 16:44:00 +0100 |
---|---|---|
committer | antirez <antirez@gmail.com> | 2011-03-04 16:44:00 +0100 |
commit | f6e0b196d32c72ebde5e9440d0359e58d316550a (patch) | |
tree | 393d63730925633c75ae8fecad4789f6d949e03f | |
parent | af5b54b9361b984224ac2308d141d547ef4df102 (diff) | |
download | redis-f6e0b196d32c72ebde5e9440d0359e58d316550a.tar.gz |
Restore argc/argv in EXEC after command is executed (backported from 2.2)
-rw-r--r-- | redis.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -7601,6 +7601,10 @@ static void execCommand(redisClient *c) { c->argc = c->mstate.commands[j].argc; c->argv = c->mstate.commands[j].argv; call(c,c->mstate.commands[j].cmd); + + /* Commands may alter argc/argv, restore mstate. */ + c->mstate.commands[j].argc = c->argc; + c->mstate.commands[j].argv = c->argv; } c->argv = orig_argv; c->argc = orig_argc; |