Support for variable length images like AIS image was introduced
in commit f0662105b674a3874227316abf8536bebc9b5995. A parameter
"-s" was also introduced to prohibit copying of the image file
automatically in the main program. However, this parameter
was implemented incorrectly and the image file was copied
nevertheless.

Signed-off-by: Christian Riesch <christian.rie...@omicron.at>
Cc: Stefano Babic <sba...@denx.de>
Cc: Heiko Schocher <h...@denx.de>
---
 tools/mkimage.c |   97 ++++++++++++++++++++++++++++---------------------------
 1 files changed, 49 insertions(+), 48 deletions(-)

diff --git a/tools/mkimage.c b/tools/mkimage.c
index 36e28ec..eeb1b10 100644
--- a/tools/mkimage.c
+++ b/tools/mkimage.c
@@ -383,65 +383,66 @@ NXTARG:           ;
                exit (EXIT_FAILURE);
        }
 
-       if (!params.skipcpy &&
-               (params.type == IH_TYPE_MULTI ||
-                       params.type == IH_TYPE_SCRIPT)) {
-               char *file = params.datafile;
-               uint32_t size;
-
-               for (;;) {
-                       char *sep = NULL;
-
-                       if (file) {
-                               if ((sep = strchr(file, ':')) != NULL) {
-                                       *sep = '\0';
+       if (!params.skipcpy) {
+               if (params.type == IH_TYPE_MULTI ||
+                   params.type == IH_TYPE_SCRIPT) {
+                       char *file = params.datafile;
+                       uint32_t size;
+
+                       for (;;) {
+                               char *sep = NULL;
+
+                               if (file) {
+                                       if ((sep = strchr(file, ':')) != NULL) {
+                                               *sep = '\0';
+                                       }
+
+                                       if (stat (file, &sbuf) < 0) {
+                                               fprintf (stderr, "%s: Can't 
stat %s: %s\n",
+                                                        params.cmdname, file, 
strerror(errno));
+                                               exit (EXIT_FAILURE);
+                                       }
+                                       size = cpu_to_uimage (sbuf.st_size);
+                               } else {
+                                       size = 0;
                                }
 
-                               if (stat (file, &sbuf) < 0) {
-                                       fprintf (stderr, "%s: Can't stat %s: 
%s\n",
-                                               params.cmdname, file, 
strerror(errno));
+                               if (write(ifd, (char *)&size, sizeof(size)) != 
sizeof(size)) {
+                                       fprintf (stderr, "%s: Write error on 
%s: %s\n",
+                                                params.cmdname, 
params.imagefile,
+                                                strerror(errno));
                                        exit (EXIT_FAILURE);
                                }
-                               size = cpu_to_uimage (sbuf.st_size);
-                       } else {
-                               size = 0;
-                       }
 
-                       if (write(ifd, (char *)&size, sizeof(size)) != 
sizeof(size)) {
-                               fprintf (stderr, "%s: Write error on %s: %s\n",
-                                       params.cmdname, params.imagefile,
-                                       strerror(errno));
-                               exit (EXIT_FAILURE);
-                       }
+                               if (!file) {
+                                       break;
+                               }
 
-                       if (!file) {
-                               break;
+                               if (sep) {
+                                       *sep = ':';
+                                       file = sep + 1;
+                               } else {
+                                       file = NULL;
+                               }
                        }
 
-                       if (sep) {
-                               *sep = ':';
-                               file = sep + 1;
-                       } else {
-                               file = NULL;
-                       }
-               }
+                       file = params.datafile;
 
-               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;
+                       for (;;) {
+                               char *sep = strchr(file, ':');
+                               if (sep) {
+                                       *sep = '\0';
+                                       copy_file (ifd, file, 1);
+                                       *sep++ = ':';
+                                       file = sep;
+                               } else {
+                                       copy_file (ifd, file, 0);
+                                       break;
+                               }
                        }
+               } else {
+                       copy_file (ifd, params.datafile, 0);
                }
-       } else {
-               copy_file (ifd, params.datafile, 0);
        }
 
        /* We're a bit of paranoid */
-- 
1.7.0.4

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to