mirror of https://github.com/valkey-io/valkey
Revert reset in multi, move errno ERANGE
Signed-off-by: Daniil Kashapov <daniil.kashapov.ykt@gmail.com>
This commit is contained in:
parent
efa1125458
commit
c3afa1069e
|
|
@ -1003,12 +1003,12 @@ static int ACLSetSelectorDatabasePermissions(aclSelector *selector, const char *
|
|||
int64_t dbid = strtoll(tokens[i], &endptr, 10);
|
||||
|
||||
/* Reject invalid input format */
|
||||
if (errno == ERANGE || *endptr != '\0') {
|
||||
if (*endptr != '\0') {
|
||||
return ACLDatabasePermissionError(new_dbs, dblist, tokens, count, EINVAL);
|
||||
}
|
||||
|
||||
/* Reject out of range values */
|
||||
if (dbid < 0 || dbid >= server.dbnum) {
|
||||
if (errno == ERANGE || dbid < 0 || dbid >= server.dbnum) {
|
||||
return ACLDatabasePermissionError(new_dbs, dblist, tokens, count, ERANGE);
|
||||
}
|
||||
|
||||
|
|
@ -1770,7 +1770,7 @@ int ACLSelectorCanAccessDb(aclSelector *selector, long long dbid) {
|
|||
if (dbid < 0 || dbid >= server.dbnum || !selector->dbs)
|
||||
return 0;
|
||||
|
||||
return intsetFind(selector->dbs, (int64_t)dbid);
|
||||
return intsetFind(selector->dbs, dbid);
|
||||
}
|
||||
|
||||
/* To prevent duplicate calls to getKeysResult, a cache is maintained
|
||||
|
|
|
|||
|
|
@ -70,6 +70,7 @@ void resetClientMultiState(client *c) {
|
|||
c->mstate->cmd_inv_flags = 0;
|
||||
c->mstate->argv_len_sums = 0;
|
||||
c->mstate->alloc_count = 0;
|
||||
c->mstate->transaction_db_id = c->db->id;
|
||||
}
|
||||
|
||||
/* Add a new command into the MULTI commands queue */
|
||||
|
|
|
|||
|
|
@ -719,6 +719,9 @@ start_server {tags {"acl external:skip"}} {
|
|||
|
||||
catch {r ACL SETUSER db-edge-user db=abc} err
|
||||
assert_match "*Error in ACL SETUSER modifier 'db=abc': Syntax error*" $err
|
||||
|
||||
catch {r ACL SETUSER db-edge-user db=12345678987654321} err
|
||||
assert_match "*Error in ACL SETUSER modifier 'db=12345678987654321': The provided database ID is out of range*" $err
|
||||
|
||||
catch {r ACL SETUSER db-edge-user db=16} err
|
||||
assert_match "*Error in ACL SETUSER modifier 'db=16': The provided database ID is out of range*" $err
|
||||
|
|
|
|||
Loading…
Reference in New Issue