From: Heinrich Schuchardt Date: Tue, 24 Oct 2023 07:26:38 +0000 (+0200) Subject: tools: mkimage: fix sfspl_image_extract_subimage() X-Git-Url: http://git.dujemihanovic.xyz/login.html?a=commitdiff_plain;h=54024c8021ab9ca50927e2c08df1bc95dd63d3f1;p=u-boot.git tools: mkimage: fix sfspl_image_extract_subimage() 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 Reviewed-by: Simon Glass --- diff --git a/tools/sfspl.c b/tools/sfspl.c index ec18a0a77e..c76420ce21 100644 --- a/tools/sfspl.c +++ b/tools/sfspl.c @@ -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)