Signed-off-by: Vicente <[email protected]>
---
 arch/arm/lib/bootm.c | 4 +++-
 commands/bootm.c     | 6 +++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
index c5b76ea..288c0b2 100644
--- a/arch/arm/lib/bootm.c
+++ b/arch/arm/lib/bootm.c
@@ -269,8 +269,9 @@ static int do_bootz_linux(struct image_data *data)
 
        ret = do_bootz_linux_fdt(fd, data);
        if (ret && ret != -ENXIO)
-               return ret;
+               goto err_out;
 
+       close(fd);
        return __do_bootm_linux(data, swap);
 
 err_out:
@@ -431,6 +432,7 @@ static int do_bootm_aimage(struct image_data *data)
                reset_cpu(0);
        }
 
+       close(fd);
        return __do_bootm_linux(data, 0);
 
 err_out:
diff --git a/commands/bootm.c b/commands/bootm.c
index 8e51695..20b49f0 100644
--- a/commands/bootm.c
+++ b/commands/bootm.c
@@ -70,6 +70,7 @@ static int bootm_open_os_uimage(struct image_data *data)
                if (ret) {
                        printf("Checking data crc failed with %s\n",
                                        strerror(-ret));
+                       uimage_close(data->os);
                        return ret;
                }
        }
@@ -79,6 +80,7 @@ static int bootm_open_os_uimage(struct image_data *data)
        if (data->os->header.ih_arch != IH_ARCH) {
                printf("Unsupported Architecture 0x%x\n",
                       data->os->header.ih_arch);
+               uimage_close(data->os);
                return -EINVAL;
        }
 
@@ -88,8 +90,10 @@ static int bootm_open_os_uimage(struct image_data *data)
        if (data->os_address != UIMAGE_INVALID_ADDRESS) {
                data->os_res = uimage_load_to_sdram(data->os, 0,
                                data->os_address);
-               if (!data->os_res)
+               if (!data->os_res) {
+                       uimage_close(data->os);
                        return -ENOMEM;
+               }
        }
 
        return 0;
-- 
1.7.12.2


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to