From 88e26303ce922bb20327e62cd8fbfa3c997384cd Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 13 Nov 2025 12:12:30 +0100 Subject: [PATCH] efivars: don't bother with realloc() if we have no interest in the old data We shouldn't ask glibc to keep the old data around (which realloc() is about), given we overwrite it entirely anyway. Let's hence speed things up here, and allow glibc to just allocate a new block for us (and shorten the code a bit) --- src/basic/efivars.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/basic/efivars.c b/src/basic/efivars.c index b5e12eda62c..9687f3d0e64 100644 --- a/src/basic/efivars.c +++ b/src/basic/efivars.c @@ -81,10 +81,10 @@ int efi_get_variable( } /* We want +1 for the read call, and +3 for the additional terminating bytes added below. */ - char *t = realloc(buf, (size_t) st.st_size + MAX(1, 3)); - if (!t) + free(buf); + buf = malloc((size_t) st.st_size + MAX(1, 3)); + if (!buf) return -ENOMEM; - buf = t; const struct iovec iov[] = { { &attr, sizeof(attr) }, -- 2.47.3