ACL: fix command exec check by returning.

This commit is contained in:
antirez 2019-01-15 18:28:43 +01:00
parent c79b01f4ba
commit ff92c06947

View File

@ -2596,6 +2596,14 @@ int processCommand(client *c) {
return C_OK;
}
/* Check if the user can run this command according to the current
* ACLs. */
if (ACLCheckCommandPerm(c) == C_ERR) {
flagTransaction(c);
addReplyErrorFormat(c,"-NOPERM this user has no permissions to run the %s command", c->cmd->name);
return C_OK;
}
/* If cluster is enabled perform the cluster redirection here.
* However we don't perform the redirection if:
* 1) The sender of this command is our master.
@ -2688,12 +2696,6 @@ int processCommand(client *c) {
return C_OK;
}
/* Check if the user can run this command according to the current
* ACLs. */
if (ACLCheckCommandPerm(c) == C_ERR) {
addReplyErrorFormat(c,"-NOPERM this user has no permissions to run the %s command", c->cmd->name);
}
/* Only allow a subset of commands in the context of Pub/Sub if the
* connection is in RESP2 mode. With RESP3 there are no limits. */
if ((c->flags & CLIENT_PUBSUB && c->resp == 2) &&