From 6ba6ea5786f0ba594dd21355f799d16b913ddeb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Viktor=20S=C3=B6derqvist?= Date: Sat, 25 Jan 2025 00:15:55 +0100 Subject: [PATCH] Adjust adjustTypeIfNeeded if needed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Viktor Söderqvist --- src/sds.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sds.c b/src/sds.c index c3a7b77ccd..b21458b21c 100644 --- a/src/sds.c +++ b/src/sds.c @@ -113,7 +113,6 @@ sds _sdsnewlen(const void *init, size_t initlen, int trymalloc) { : s_malloc_usable(hdrlen + initlen + 1, &bufsize); if (sh == NULL) return NULL; - adjustTypeIfNeeded(&type, &hdrlen, bufsize); return sdswrite(sh, bufsize, type, init, initlen); } @@ -123,8 +122,9 @@ sds _sdsnewlen(const void *init, size_t initlen, int trymalloc) { * buffer size. You can use a larger `bufsize` than required, but usable size * can't be greater than `sdsTypeMaxSize(type)`. */ sds sdswrite(char *buf, size_t bufsize, char type, const char *init, size_t initlen) { - assert(bufsize >= sdsReqSize(initlen, type)); int hdrlen = sdsHdrSize(type); + adjustTypeIfNeeded(&type, &hdrlen, bufsize); + assert(bufsize >= sdsReqSize(initlen, type)); size_t usable = bufsize - hdrlen - 1; sds s = buf + hdrlen; unsigned char *fp = ((unsigned char *)s) - 1; /* flags pointer. */