[flashrom] [PATCH 2/2] dediprog: Fix bug where too many transfers would be queued
David Hendricks
david.hendricks at gmail.com
Sat May 7 23:45:33 CEST 2016
Looks good to me.
Acked-by: David Hendricks <david.hendricks at gmail.com>
On Wed, May 4, 2016 at 4:37 AM, Nico Huber <nico.huber at secunet.com> wrote:
> We didn't check the total number of queued transfers in the inner most
> loop. Up to DEDIPROG_ASYNC_TRANSFERS - 1 invalid transfers could be
> queued therefore. So add another check on the total number.
>
> Signed-off-by: Nico Huber <nico.huber at secunet.com>
> ---
> dediprog.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/dediprog.c b/dediprog.c
> index b7276e5..6f82772 100644
> --- a/dediprog.c
> +++ b/dediprog.c
> @@ -462,7 +462,9 @@ static int dediprog_spi_bulk_read(struct flashctx
> *flash, uint8_t *buf, unsigned
>
> /* Now transfer requested chunks using libusb's asynchronous
> interface. */
> while (!status.error && (status.queued_idx < count)) {
> - while ((status.queued_idx - status.finished_idx) <
> DEDIPROG_ASYNC_TRANSFERS) {
> + while ((status.queued_idx < count) &&
> + (status.queued_idx - status.finished_idx) <
> DEDIPROG_ASYNC_TRANSFERS)
> + {
> transfer = transfers[status.queued_idx %
> DEDIPROG_ASYNC_TRANSFERS];
> libusb_fill_bulk_transfer(transfer,
> dediprog_handle, 0x80 | dediprog_in_endpoint,
> (unsigned char *)buf +
> status.queued_idx * chunksize, chunksize,
> --
> 2.7.0
>
>
> _______________________________________________
> flashrom mailing list
> flashrom at flashrom.org
> https://www.flashrom.org/mailman/listinfo/flashrom
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.flashrom.org/pipermail/flashrom/attachments/20160507/60c81202/attachment.html>
More information about the flashrom
mailing list