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: 64fd30d367 ("tools: mkimage: Add StarFive SPL image support")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Heinrich Schuchardt 2023-10-24 09:26:38 +02:00 committed by Tom Rini
parent 482a0f1764
commit 54024c8021

View 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)