]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
tools: mkimage: fix sfspl_image_extract_subimage()
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Tue, 24 Oct 2023 07:26:38 +0000 (09:26 +0200)
committerTom Rini <trini@konsulko.com>
Mon, 30 Oct 2023 19:32:49 +0000 (15:32 -0400)
Do not leak file descriptor if writing fails.
Correct the error text if opening a file fails.

Addresses-Coverity-ID: 467054 Resource leaks
Fixes: 64fd30d367a1 ("tools: mkimage: Add StarFive SPL image support")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
tools/sfspl.c

index ec18a0a77e76d8f8c41f3f9ca2fa1b78c24d53bd..c76420ce21b63bf1c66b78eb068fc70effe1c2b5 100644 (file)
@@ -99,7 +99,7 @@ static int sfspl_image_extract_subimage(void *ptr,
 {
        struct spl_hdr *hdr = (void *)ptr;
        unsigned char *buf = ptr;
-       int fd;
+       int fd, ret = EXIT_SUCCESS;
        unsigned int hdr_size = le32_to_cpu(hdr->hdr_size);
        unsigned int file_size = le32_to_cpu(hdr->file_size);
 
@@ -110,16 +110,16 @@ static int sfspl_image_extract_subimage(void *ptr,
 
        fd = open(params->outfile, O_WRONLY | O_CREAT | O_TRUNC, 0644);
        if (fd == -1) {
-               perror("Can write file");
+               perror("Cannot open file");
                return EXIT_FAILURE;
        }
        if (write(fd, &buf[hdr_size], file_size) != file_size) {
                perror("Cannot write file");
-               return EXIT_FAILURE;
+               ret = EXIT_FAILURE;
        }
        close(fd);
 
-       return EXIT_SUCCESS;
+       return ret;
 }
 
 static int sfspl_check_image_type(uint8_t type)