From dbdc68a658014c54d588bbdae96276edcb0e061e Mon Sep 17 00:00:00 2001 From: antirez Date: Fri, 18 Jan 2019 13:24:53 +0100 Subject: [PATCH] ACL: handle command IDs in case insensitive way. --- src/acl.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/acl.c b/src/acl.c index 15b10873..70491958 100644 --- a/src/acl.c +++ b/src/acl.c @@ -284,10 +284,17 @@ unsigned long ACLGetCommandID(const char *cmdname) { static rax *map = NULL; static unsigned long nextid = 0; + sds lowername = sdsnew(cmdname); + sdstolower(lowername); if (map == NULL) map = raxNew(); - void *id = raxFind(map,(unsigned char*)cmdname,strlen(cmdname)); - if (id != raxNotFound) return (unsigned long)id; - raxInsert(map,(unsigned char*)cmdname,strlen(cmdname),(void*)nextid,NULL); + void *id = raxFind(map,(unsigned char*)lowername,sdslen(lowername)); + if (id != raxNotFound) { + sdsfree(lowername); + return (unsigned long)id; + } + raxInsert(map,(unsigned char*)lowername,strlen(lowername), + (void*)nextid,NULL); + sdsfree(lowername); return nextid++; }