[U-Boot] [PATCH] Don't try to stat() a colon separated list of files in multi or script mode

--- tools/mkimage.c | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-)
diff --git a/tools/mkimage.c b/tools/mkimage.c index 8af9d50..aa739b4 100644 --- a/tools/mkimage.c +++ b/tools/mkimage.c @@ -311,21 +311,27 @@ NXTARG: ; exit (retval); }
- dfd = open(params.datafile, O_RDONLY | O_BINARY); - if (dfd < 0) { - fprintf(stderr, "%s: Can't open %s: %s\n", - params.cmdname, params.datafile, strerror(errno)); - exit(EXIT_FAILURE); - } + if (params.skipcpy || + !(params.type == IH_TYPE_MULTI || + params.type == IH_TYPE_SCRIPT)) { + dfd = open(params.datafile, O_RDONLY | O_BINARY); + if (dfd < 0) { + fprintf(stderr, "%s: Can't open %s: %s\n", + params.cmdname, params.datafile, + strerror(errno)); + exit(EXIT_FAILURE); + }
- if (fstat(dfd, &sbuf) < 0) { - fprintf(stderr, "%s: Can't stat %s: %s\n", - params.cmdname, params.datafile, strerror(errno)); - exit(EXIT_FAILURE); - } + if (fstat(dfd, &sbuf) < 0) { + fprintf(stderr, "%s: Can't stat %s: %s\n", + params.cmdname, params.datafile, + strerror(errno)); + exit(EXIT_FAILURE); + }
- params.file_size = sbuf.st_size + tparams->header_size; - close(dfd); + params.file_size = sbuf.st_size + tparams->header_size; + close(dfd); + }
/* * In case there an header with a variable

Hi,
On 18 November 2015 at 17:37, Nye Liu nyet@nyet.org wrote:
tools/mkimage.c | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-)
Can you please add a commit message explaining the problem, and what you are trying to do here?
diff --git a/tools/mkimage.c b/tools/mkimage.c index 8af9d50..aa739b4 100644 --- a/tools/mkimage.c +++ b/tools/mkimage.c @@ -311,21 +311,27 @@ NXTARG: ; exit (retval); }
dfd = open(params.datafile, O_RDONLY | O_BINARY);
if (dfd < 0) {
fprintf(stderr, "%s: Can't open %s: %s\n",
params.cmdname, params.datafile, strerror(errno));
exit(EXIT_FAILURE);
}
if (params.skipcpy ||
!(params.type == IH_TYPE_MULTI ||
params.type == IH_TYPE_SCRIPT)) {
dfd = open(params.datafile, O_RDONLY | O_BINARY);
if (dfd < 0) {
fprintf(stderr, "%s: Can't open %s: %s\n",
params.cmdname, params.datafile,
strerror(errno));
exit(EXIT_FAILURE);
}
if (fstat(dfd, &sbuf) < 0) {
fprintf(stderr, "%s: Can't stat %s: %s\n",
params.cmdname, params.datafile, strerror(errno));
exit(EXIT_FAILURE);
}
if (fstat(dfd, &sbuf) < 0) {
fprintf(stderr, "%s: Can't stat %s: %s\n",
params.cmdname, params.datafile,
strerror(errno));
exit(EXIT_FAILURE);
}
params.file_size = sbuf.st_size + tparams->header_size;
close(dfd);
params.file_size = sbuf.st_size + tparams->header_size;
close(dfd);
} /* * In case there an header with a variable
-- 2.6.2
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Regards, Simon
participants (2)
-
Nye Liu
-
Simon Glass