diff options
| author | Rafał Miłecki <[email protected]> | 2026-02-21 11:00:07 +0100 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2026-03-06 10:32:41 -0600 |
| commit | d80d88cb87d7f291c7abc9168d69f30f994b852f (patch) | |
| tree | 5e65eef536dc5abf184364666b1df34179e921ce | |
| parent | 1197954d5896f431716a61b4242c98c336753948 (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.c | 4 |
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; } |
