summaryrefslogtreecommitdiff
path: root/src/config.c
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2020-02-27 17:47:50 +0100
committerantirez <antirez@gmail.com>2020-02-27 17:51:30 +0100
commit9abdc089f84c7b7e16b62b41a7a30eb9814d5b83 (patch)
tree826c9e3907c742027915db37296d89f2315712e9 /src/config.c
parent43f39f2e37b3b46683747a8207637f04747c9e94 (diff)
downloadredis-9abdc089f84c7b7e16b62b41a7a30eb9814d5b83.tar.gz
Fix SDS misuse in enumConfigSet(). Related to #6778.
Diffstat (limited to 'src/config.c')
-rw-r--r--src/config.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/config.c b/src/config.c
index 8d069f8db..aeb2fea7e 100644
--- a/src/config.c
+++ b/src/config.c
@@ -1666,12 +1666,12 @@ static int enumConfigSet(typeData data, sds value, int update, char **err) {
sds enumerr = sdsnew("argument must be one of the following: ");
configEnum *enumNode = data.enumd.enum_value;
while(enumNode->name != NULL) {
- enumerr = sdscatlen(enumerr, enumNode->name, strlen(enumNode->name));
+ enumerr = sdscatlen(enumerr, enumNode->name,
+ strlen(enumNode->name));
enumerr = sdscatlen(enumerr, ", ", 2);
enumNode++;
}
-
- enumerr[sdslen(enumerr) - 2] = '\0';
+ sdsrange(enumerr,0,-3); /* Remove final ", ". */
strncpy(loadbuf, enumerr, LOADBUF_SIZE);
loadbuf[LOADBUF_SIZE - 1] = '\0';