tools: mkimage: Fix nullptr at strchr()
authorMikhail Ilin <ilin.mikhail.ol@gmail.com>
Wed, 23 Nov 2022 09:39:36 +0000 (12:39 +0300)
committerTom Rini <trini@konsulko.com>
Thu, 8 Dec 2022 14:29:01 +0000 (09:29 -0500)
The copy_datafile(ifd, params.datafile) function has been
 implemented to copy data by reducing the number of lines in the main
 function.

Signed-off-by: Mikhail Ilin <ilin.mikhail.ol@gmail.com>
tools/mkimage.c

index 30c6df7..0b5ee5d 100644 (file)
@@ -430,6 +430,25 @@ static void verify_image(const struct image_type_params *tparams)
        (void)close(ifd);
 }
 
+void copy_datafile(int ifd, char *file)
+{
+       if (!file)
+               return;
+       for (;;) {
+               char *sep = strchr(file, ':');
+
+               if (sep) {
+                       *sep = '\0';
+                       copy_file(ifd, file, 1);
+                       *sep++ = ':';
+                       file = sep;
+               } else {
+                       copy_file(ifd, file, 0);
+                       break;
+               }
+       }
+}
+
 int main(int argc, char **argv)
 {
        int ifd = -1;
@@ -647,21 +666,7 @@ int main(int argc, char **argv)
                                        file = NULL;
                                }
                        }
-
-                       file = params.datafile;
-
-                       for (;;) {
-                               char *sep = strchr(file, ':');
-                               if (sep) {
-                                       *sep = '\0';
-                                       copy_file (ifd, file, 1);
-                                       *sep++ = ':';
-                                       file = sep;
-                               } else {
-                                       copy_file (ifd, file, 0);
-                                       break;
-                               }
-                       }
+                       copy_datafile(ifd, params.datafile);
                } else if (params.type == IH_TYPE_PBLIMAGE) {
                        /* PBL has special Image format, implements its' own */
                        pbl_load_uboot(ifd, &params);