mkimage: fit: handle FDT_ERR_NOSPACE when ciphering
authorPatrick Oppenlander <patrick.oppenlander@gmail.com>
Thu, 30 Jul 2020 04:22:14 +0000 (14:22 +1000)
committerTom Rini <trini@konsulko.com>
Fri, 7 Aug 2020 15:47:18 +0000 (11:47 -0400)
Also replace fdt_delprop/fdt_setprop with fdt_setprop as fdt_setprop can
replace an existing property value.

Signed-off-by: Patrick Oppenlander <patrick.oppenlander@gmail.com>
Reviewed-by: Philippe Reynes <philippe.reynes@softathome.com>
tools/image-host.c

index dd7ecc4b609b1b6c28d2dd848a46bcb1c91d7e1c..b4603c5f01a802134c81921d1b24034a0e458672 100644 (file)
@@ -399,23 +399,24 @@ int fit_image_write_cipher(void *fit, int image_noffset, int noffset,
 {
        int ret = -1;
 
-       /* Remove unciphered data */
-       ret = fdt_delprop(fit, image_noffset, FIT_DATA_PROP);
-       if (ret) {
-               printf("Can't remove data (err = %d)\n", ret);
-               goto out;
-       }
-
-       /* Add ciphered data */
+       /* Replace data with ciphered data */
        ret = fdt_setprop(fit, image_noffset, FIT_DATA_PROP,
                          data_ciphered, data_ciphered_len);
+       if (ret == -FDT_ERR_NOSPACE) {
+               ret = -ENOSPC;
+               goto out;
+       }
        if (ret) {
-               printf("Can't add ciphered data (err = %d)\n", ret);
+               printf("Can't replace data with ciphered data (err = %d)\n", ret);
                goto out;
        }
 
        /* add non ciphered data size */
        ret = fdt_setprop_u32(fit, image_noffset, "data-size-unciphered", size);
+       if (ret == -FDT_ERR_NOSPACE) {
+               ret = -ENOSPC;
+               goto out;
+       }
        if (ret) {
                printf("Can't add unciphered data size (err = %d)\n", ret);
                goto out;