]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
env: sf: report malloc error to caller
authorRalph Siemsen <ralph.siemsen@linaro.org>
Fri, 19 Jan 2024 21:32:17 +0000 (16:32 -0500)
committerTom Rini <trini@konsulko.com>
Mon, 29 Jan 2024 19:52:23 +0000 (14:52 -0500)
In the non-redundant code for env_sf_save(), a failure to malloc() the
temporary buffer produces the following output:

    Saving Environment to SPIFlash... OK

This is misleading as the flash has neither been erased nor written.

Fix it to return an error to the caller, so the output will be:

    Saving Environment to SPIFlash... Failed (-12)

Note that there is another copy of env_sf_save() in the same file, for
handling redundant environment, and it already has the same logic.

Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
env/sf.c

index a425ecc11c8e6c27606e7f684b6dd641f4abb934..8f5c03b00d338108b18454e8cbf82dcbc509a0cf 100644 (file)
--- a/env/sf.c
+++ b/env/sf.c
@@ -210,8 +210,10 @@ static int env_sf_save(void)
                saved_size = sect_size - CONFIG_ENV_SIZE;
                saved_offset = CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE;
                saved_buffer = malloc(saved_size);
-               if (!saved_buffer)
+               if (!saved_buffer) {
+                       ret = -ENOMEM;
                        goto done;
+               }
 
                ret = spi_flash_read(env_flash, saved_offset,
                        saved_size, saved_buffer);