From 5eda1c5b427ff3922308af4531dd738e6ba700bf Mon Sep 17 00:00:00 2001 From: John Sully Date: Fri, 10 Sep 2021 00:38:49 +0000 Subject: [PATCH] Don't zero out potentially long buffers Former-commit-id: 99eb47e129a3cd555914d4816febb02f0058253a --- src/object.cpp | 3 ++- src/server.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/object.cpp b/src/object.cpp index 91b22e5f9..ee6310c41 100644 --- a/src/object.cpp +++ b/src/object.cpp @@ -102,10 +102,11 @@ robj *createEmbeddedStringObject(const char *ptr, size_t len) { allocsize = sizeof(void*); size_t mvccExtraBytes = g_pserver->fActiveReplica ? sizeof(redisObjectExtended) : 0; - char *oB = (char*)zcalloc(sizeof(robj)+allocsize-sizeof(redisObject::m_ptr)+mvccExtraBytes, MALLOC_SHARED); + char *oB = (char*)zmalloc(sizeof(robj)+allocsize-sizeof(redisObject::m_ptr)+mvccExtraBytes, MALLOC_SHARED); robj *o = reinterpret_cast(oB + mvccExtraBytes); struct sdshdr8 *sh = (sdshdr8*)(&o->m_ptr); + new (o) redisObject; o->type = OBJ_STRING; o->encoding = OBJ_ENCODING_EMBSTR; o->setrefcount(1); diff --git a/src/server.h b/src/server.h index 70709efc4..2081de713 100644 --- a/src/server.h +++ b/src/server.h @@ -951,6 +951,7 @@ struct redisObjectExtended { }; typedef struct redisObject { + friend redisObject *createEmbeddedStringObject(const char *ptr, size_t len); protected: redisObject() {}