[PATCH 2/2] dfu_load.c: Do not download file suffix
Stefan Schmidt
stefan at datenfreihafen.org
Mon May 23 19:46:02 CEST 2011
Hello.
On Sat, 2011-05-21 at 01:49, Tormod Volden wrote:
> From: Tormod Volden <debian.tormod at gmail.com>
>
> If a DFU file suffix is detected, it will be stripped off and
> not sent to the device.
>
> The length of the suffix is available in file.suffixlen so it
> can be used to calculate how much of the file is left to send.
Great that will help people with firmware files with suffix a lot.
> For this the download function call interface is changed to pass
> the dfu_file structure instead of only a file descriptor.
>
> Also some sanity checks could be removed since they are already
> taken care of by parse_dfu_suffix().
>
> Signed-off-by: Tormod Volden <debian.tormod at gmail.com>
> ---
>
> This could need even more testing...
I will test it with modified firmware files for the freerunner
containing the suffix and flashing them.
> - while (bytes_sent < st.st_size /* - DFU_HDR */) {
> + while (bytes_sent < file.size - file.suffixlen) {
> int hashes_todo;
> + int chunk_size;
>
> - ret = read(fd, buf, xfer_size);
> + chunk_size = file.size - file.suffixlen - bytes_sent;
> + if (chunk_size > xfer_size)
> + chunk_size = xfer_size;
> + ret = read(file.fd, buf, chunk_size);
The rest are pretty obvious changes due to the new struct but this
jumped in my eye.
Did you hit an actual bug with a to large xfer_size?
regards
Stefan Schmidt
More information about the devel
mailing list