Commit c936f801 authored by guybe7's avatar guybe7 Committed by Oran Agra
Browse files

Fix two minor bugs (MIGRATE key args and getKeysUsingCommandTable) (#9455)

1. MIGRATE has a potnetial key arg in argv[3]. It should be reflected in the command table.
2. getKeysUsingCommandTable should never free getKeysResult, it is always freed by the caller)
   The reason we never encountered this double-free bug is that almost always getKeysResult
   uses the statis buffer and doesn't allocate a new one.

(cherry picked from commit 6aa2285e)
parent 694a869e
......@@ -1623,7 +1623,6 @@ int getKeysUsingCommandTable(struct redisCommand *cmd,robj **argv, int argc, get
* return no keys and expect the command implementation to report
* an arity or syntax error. */
if (cmd->flags & CMD_MODULE || cmd->arity < 0) {
getKeysFreeResult(result);
result->numkeys = 0;
return 0;
} else {
......
......@@ -870,7 +870,7 @@ struct redisCommand redisCommandTable[] = {
{"migrate",migrateCommand,-6,
"write random @keyspace @dangerous",
0,migrateGetKeys,0,0,0,0,0,0},
0,migrateGetKeys,3,3,1,0,0,0},
{"asking",askingCommand,1,
"fast @keyspace",
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment