From: Michal Simek <michal.simek@xilinx.com>
Date: Fri, 21 Oct 2016 11:16:13 +0000 (+0200)
Subject: tools: mkimage: Check if file is regular file
X-Git-Tag: v2025.01-rc5-pxa1908~8194
X-Git-Url: http://git.dujemihanovic.xyz/img/static/git-logo.png?a=commitdiff_plain;h=56c7e8015509312240b1ee15f2ff74510939a45d;p=u-boot.git

tools: mkimage: Check if file is regular file

Current Makefile.spl passes -R parameter which is not empty
and pointing to ./ folder.
"./tools/mkimage -T zynqmpimage -R ./"" -d spl/u-boot-spl.bin
spl/boot.bin"
That's why mkimage is trying to parse ./ file and generate
register init which is wrong.
Check that passed filename is regular file. If not do not work with it.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---

diff --git a/tools/zynqmpimage.c b/tools/zynqmpimage.c
index d08144c2bd..202faea072 100644
--- a/tools/zynqmpimage.c
+++ b/tools/zynqmpimage.c
@@ -237,12 +237,18 @@ static int zynqmpimage_check_image_types(uint8_t type)
 static void zynqmpimage_parse_initparams(struct zynqmp_header *zynqhdr,
 	const char *filename)
 {
-	/* Expect a table of register-value pairs, e.g. "0x12345678 0x4321" */
-	FILE *fp = fopen(filename, "r");
+	FILE *fp;
 	struct zynqmp_reginit reginit;
 	unsigned int reg_count = 0;
 	int r;
+	struct stat path_stat;
+
+	stat(filename, &path_stat);
+	if (!S_ISREG(path_stat.st_mode))
+		return;
 
+	/* Expect a table of register-value pairs, e.g. "0x12345678 0x4321" */
+	fp = fopen(filename, "r");
 	if (!fp) {
 		fprintf(stderr, "Cannot open initparams file: %s\n", filename);
 		exit(1);