From b9320359e8903a15bfc55402bf842fa077e08dca Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Tue, 2 Jun 2026 18:08:40 -0400 Subject: [PATCH] perf: Avoid zero-fill in redis_key_prefix redis_key_prefix used ecalloc to allocate the prefixed-key buffer, then immediately overwrote the entire allocation with two memcpy calls. The zero-fill was wasted work on every keyed argument when a prefix is set. Use emalloc and write the single trailing NUL explicitly. --- library.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library.c b/library.c index 1bb6fa63..809e4d89 100644 --- a/library.c +++ b/library.c @@ -4483,9 +4483,10 @@ redis_key_prefix(RedisSock *redis_sock, char **key, size_t *key_len) { } ret_len = ZSTR_LEN(redis_sock->prefix) + *key_len; - ret = ecalloc(1 + ret_len, 1); + ret = emalloc(1 + ret_len); memcpy(ret, ZSTR_VAL(redis_sock->prefix), ZSTR_LEN(redis_sock->prefix)); memcpy(ret + ZSTR_LEN(redis_sock->prefix), *key, *key_len); + ret[ret_len] = '\0'; *key = ret; *key_len = ret_len;