[PATCH 2/6] fw_env: allocate buffer of proper size in flash_write_buf()
Rafał Miłecki
zajec5 at gmail.com
Sat Feb 21 11:00:07 CET 2026
From: Rafał Miłecki <rafal at milecki.pl>
When dealing with env data not aligned to flash blocks flash_write_buf()
has to use an extra buffer. It reads existing flash content to it,
modifies required part and writes it back.
While reading and writing a size stored in "write_total" is used. It's
what should be used when allocating the buffer too.
In some cases allocating memory of "erase_len" size could result in
allocating too big buffer. That wouldn't break anything but it was
making code less intuitive.
Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
---
tools/env/fw_env.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c
index c69da0b926a..fcbe09ea981 100644
--- a/tools/env/fw_env.c
+++ b/tools/env/fw_env.c
@@ -1037,11 +1037,11 @@ static int flash_write_buf(int dev, int fd, void *buf, size_t count)
* block back again.
*/
if (write_total > count) {
- data = malloc(erase_len);
+ data = malloc(write_total);
if (!data) {
fprintf(stderr,
"Cannot malloc %zu bytes: %s\n",
- erase_len, strerror(errno));
+ write_total, strerror(errno));
return -1;
}
--
2.51.0
More information about the U-Boot
mailing list