]> git.sur5r.net Git - u-boot/blobdiff - tools/fit_image.c
x86: acpi: Return table length in acpi_create_madt_lapics()
[u-boot] / tools / fit_image.c
index e628212208c4ae417ed8f1ac37f2a6e581cb8365..0551572b04576971d4fd4af4e9085b89d5715964 100644 (file)
@@ -123,13 +123,14 @@ static int fdt_property_file(struct image_tool_params *params,
 
        ret = fdt_property_placeholder(fdt, "data", sbuf.st_size, &ptr);
        if (ret)
-               return ret;
+               goto err;
        ret = read(fd, ptr, sbuf.st_size);
        if (ret != sbuf.st_size) {
                fprintf(stderr, "%s: Can't read %s: %s\n",
                        params->cmdname, fname, strerror(errno));
                goto err;
        }
+       close(fd);
 
        return 0;
 err:
@@ -329,7 +330,7 @@ static int fit_build(struct image_tool_params *params, const char *fname)
        if (ret < 0) {
                fprintf(stderr, "%s: Failed to build FIT image\n",
                        params->cmdname);
-               goto err;
+               goto err_buf;
        }
        size = ret;
        fd = open(fname, O_RDWR | O_CREAT | O_TRUNC | O_BINARY, 0666);
@@ -342,13 +343,15 @@ static int fit_build(struct image_tool_params *params, const char *fname)
        if (ret != size) {
                fprintf(stderr, "%s: Can't write %s: %s\n",
                        params->cmdname, fname, strerror(errno));
-               close(fd);
                goto err;
        }
        close(fd);
+       free(buf);
 
        return 0;
 err:
+       close(fd);
+err_buf:
        free(buf);
        return -1;
 }
@@ -533,8 +536,8 @@ static int fit_import_data(struct image_tool_params *params, const char *fname)
        if (fd < 0) {
                fprintf(stderr, "%s: Can't open %s: %s\n",
                        params->cmdname, fname, strerror(errno));
-               ret = -EIO;
-               goto err;
+               free(fdt);
+               return -EIO;
        }
        if (write(fd, fdt, new_size) != new_size) {
                debug("%s: Failed to write external data to file %s\n",