mirror of
https://github.com/fluencelabs/redis
synced 2025-03-19 09:00:51 +00:00
Cluster Manager: fixed some memory error
This commit is contained in:
parent
220375b424
commit
5b3d73b3d7
@ -2412,14 +2412,19 @@ static int clusterManagerSetSlot(clusterManagerNode *node1,
|
|||||||
(char *) node2->name);
|
(char *) node2->name);
|
||||||
if (err != NULL) *err = NULL;
|
if (err != NULL) *err = NULL;
|
||||||
if (!reply) return 0;
|
if (!reply) return 0;
|
||||||
|
int success = 1;
|
||||||
if (reply->type == REDIS_REPLY_ERROR) {
|
if (reply->type == REDIS_REPLY_ERROR) {
|
||||||
|
success = 0;
|
||||||
if (err != NULL) {
|
if (err != NULL) {
|
||||||
*err = zmalloc((reply->len + 1) * sizeof(char));
|
*err = zmalloc((reply->len + 1) * sizeof(char));
|
||||||
strcpy(*err, reply->str);
|
strcpy(*err, reply->str);
|
||||||
|
CLUSTER_MANAGER_PRINT_REPLY_ERROR(node1, err);
|
||||||
}
|
}
|
||||||
return 0;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
return 1;
|
cleanup:
|
||||||
|
freeReplyObject(reply);
|
||||||
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int clusterManagerMigrateKeysInSlot(clusterManagerNode *source,
|
static int clusterManagerMigrateKeysInSlot(clusterManagerNode *source,
|
||||||
@ -3175,7 +3180,7 @@ static list *clusterManagerComputeReshardTable(list *sources, int numslots) {
|
|||||||
int slot = node->slots[j];
|
int slot = node->slots[j];
|
||||||
if (!slot) continue;
|
if (!slot) continue;
|
||||||
if (count >= max || (int)listLength(moved) >= numslots) break;
|
if (count >= max || (int)listLength(moved) >= numslots) break;
|
||||||
clusterManagerReshardTableItem *item = zmalloc(sizeof(item));
|
clusterManagerReshardTableItem *item = zmalloc(sizeof(*item));
|
||||||
item->source = node;
|
item->source = node;
|
||||||
item->slot = j;
|
item->slot = j;
|
||||||
listAddNodeTail(moved, item);
|
listAddNodeTail(moved, item);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user