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 ;-)

> +             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
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to