From c5a3c43d2a08c19f3ad5877347b17da605f80ee1 Mon Sep 17 00:00:00 2001 From: John Sully Date: Sat, 2 Mar 2019 19:27:52 -0500 Subject: [PATCH] sds copies uninitialized data wasting time for everyone Former-commit-id: a1475af1e4ab97337287d4ef08d092ffabbb73ca --- src/sds.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/sds.c b/src/sds.c index cc574bade..dac1f281f 100644 --- a/src/sds.c +++ b/src/sds.c @@ -227,7 +227,9 @@ sds sdsMakeRoomFor(sds s, size_t addlen) { if (type == SDS_TYPE_5) type = SDS_TYPE_8; hdrlen = sdsHdrSize(type); - if (oldtype==type) { + if (oldtype==type && (len+1024) >= avail) { + // note: if we have a lot of free space don't use this as we don't want s_realloc copying + // uninitialized data newsh = s_realloc(sh, hdrlen+newlen+1, MALLOC_SHARED); if (newsh == NULL) return NULL; s = (char*)newsh+hdrlen;