summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafał Miłecki <[email protected]>2026-02-21 11:00:07 +0100
committerTom Rini <[email protected]>2026-03-06 10:32:41 -0600
commitd80d88cb87d7f291c7abc9168d69f30f994b852f (patch)
tree5e65eef536dc5abf184364666b1df34179e921ce
parent1197954d5896f431716a61b4242c98c336753948 (diff)
fw_env: allocate buffer of proper size in flash_write_buf()
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 <[email protected]>
-rw-r--r--tools/env/fw_env.c4
1 files 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;
}