Hello Marek,
Am 08.02.2014 15:16, schrieb Marek Vasut:
On Saturday, January 25, 2014 at 07:44:28 AM, Heiko Schocher wrote:
add fit_info command to the host tools. This command prints
the name, offset and the len from a property from a node in
a fit file. This info can be used to extract a properties
data with linux tools, for example "dd".
Signed-off-by: Heiko Schocher<h...@denx.de>
[...]
+int mmap_fdt(char *cmdname, const char *fname, void **blobp,
+ struct stat *sbuf)
+{
+ void *ptr;
+ int fd;
+
+ /* Load FIT blob into memory (we need to write hashes/signatures) */
+ fd = open(fname, O_RDWR | O_BINARY);
+
+ if (fd< 0) {
+ fprintf(stderr, "%s: Can't open %s: %s\n",
+ cmdname, fname, strerror(errno));
+ unlink(fname);
Are you sure about this unlink() call here ? The unlink() might delete the file,
dunno if that was intended ;-)
Heh.. good catch! I only moved this function from tools/fit_image.c
to a common place, so other function can use it too ... but I just
noticed, I do not really need this ...
+ return -1;
+ }
+
+ if (fstat(fd, sbuf)< 0) {
+ fprintf(stderr, "%s: Can't stat %s: %s\n",
+ cmdname, fname, strerror(errno));
+ unlink(fname);
+ return -1;
+ }
+
+ ptr = mmap(0, sbuf->st_size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
+ if (ptr == MAP_FAILED) {
+ fprintf(stderr, "%s: Can't read %s: %s\n",
+ cmdname, fname, strerror(errno));
+ unlink(fname);
Here this might be a problem ;-)
Also, make sure to set errno = 0 before mmap() and check the errno afterwards
here too.
[...]
Seems this function needs a rework! I drop this from my patch, as I
do not need it.
bye,
Heiko
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot