From 8210d67c2483430129f46f5621c2788adabebc9d 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: 91e76ab4a00546278100baf6dfe61c13e802b40e --- 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 6ecaf3ba5..bde1bc302 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 5aea41b23..fa2183149 100644 --- a/src/server.h +++ b/src/server.h @@ -950,6 +950,7 @@ struct redisObjectExtended { }; typedef struct redisObject { + friend redisObject *createEmbeddedStringObject(const char *ptr, size_t len); protected: redisObject() {}