summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryiyuaner <yiyuanguo96514@gmail.com>2022-03-22 16:46:16 +0800
committerGitHub <noreply@github.com>2022-03-22 10:46:16 +0200
commit08aed7e7dd1c338e5fb69a10b8ae09a0ec11e96a (patch)
treea1184c643dc93279dcfff570f025af17a6bbcb05
parent79db037a4f7bf18962f4255de84d1767d63da1f5 (diff)
downloadredis-08aed7e7dd1c338e5fb69a10b8ae09a0ec11e96a.tar.gz
Fix an off by one error in zzlStrtod (#10465)
When vlen = sizeof(buf), the statement buf[vlen] = '\0' accessing the buffer buf is an off by one error.
-rw-r--r--src/t_zset.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/t_zset.c b/src/t_zset.c
index dd0678f7a..3710b62d7 100644
--- a/src/t_zset.c
+++ b/src/t_zset.c
@@ -721,8 +721,8 @@ zskiplistNode *zslLastInLexRange(zskiplist *zsl, zlexrangespec *range) {
double zzlStrtod(unsigned char *vstr, unsigned int vlen) {
char buf[128];
- if (vlen > sizeof(buf))
- vlen = sizeof(buf);
+ if (vlen > sizeof(buf) - 1)
+ vlen = sizeof(buf) - 1;
memcpy(buf,vstr,vlen);
buf[vlen] = '\0';
return strtod(buf,NULL);