[U-Boot] [PATCH 6/7] tools, fit: add fit_info host command
Marek Vasut
marex at denx.de
Sat Feb 8 15:16:26 CET 2014
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 <hs at 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 ;-)
> + 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.
[...]
Best regards,
Marek Vasut
More information about the U-Boot
mailing list