tools: mkimage: Check if file is regular file
authorMichal Simek <michal.simek@xilinx.com>
Fri, 21 Oct 2016 11:16:13 +0000 (13:16 +0200)
committerMichal Simek <michal.simek@xilinx.com>
Tue, 15 Nov 2016 14:27:45 +0000 (15:27 +0100)
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>
tools/zynqmpimage.c

index d08144c2bdfd376f991eb2611a7490b0662b6aaa..202faea07295a39efde8d5e70775aa0656917630 100644 (file)
@@ -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);