From f858bb2e6c191da3981838937950cb3c98e488fe Mon Sep 17 00:00:00 2001
From: Heinrich Schuchardt <xypron.glpk@gmx.de>
Date: Tue, 17 Aug 2021 07:03:20 +0200
Subject: [PATCH] kwbimage: check fopen() return value
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

Always check the return value of fopen().

This resolves Coverity CID 338491:
Null pointer dereferences (NULL_RETURNS)

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Stefan Roese <sr@denx.de>
Reviewed-by: Pali Rohár <pali@kernel.org>
---
 tools/kwbimage.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/tools/kwbimage.c b/tools/kwbimage.c
index 9fab04ce88..b2694888d9 100644
--- a/tools/kwbimage.c
+++ b/tools/kwbimage.c
@@ -832,6 +832,12 @@ static int kwb_dump_fuse_cmds(struct secure_hdr_v1 *sec_hdr)
 	if (!strcmp(e->name, "a38x")) {
 		FILE *out = fopen("kwb_fuses_a38x.txt", "w+");
 
+		if (!out) {
+			fprintf(stderr, "Couldn't open eFuse settings: '%s': %s\n",
+				"kwb_fuses_a38x.txt", strerror(errno));
+			return -ENOENT;
+		}
+
 		kwb_dump_fuse_cmds_38x(out, sec_hdr);
 		fclose(out);
 		goto done;
@@ -1060,6 +1066,11 @@ int export_pub_kak_hash(RSA *kak, struct secure_hdr_v1 *secure_hdr)
 	int res;
 
 	hashf = fopen("pub_kak_hash.txt", "w");
+	if (!hashf) {
+		fprintf(stderr, "Couldn't open hash file: '%s': %s\n",
+			"pub_kak_hash.txt", strerror(errno));
+		return 1;
+	}
 
 	res = kwb_export_pubkey(kak, &secure_hdr->kak, hashf, "KAK");
 
-- 
2.39.5