<div dir="ltr"><div dir="ltr">Hi Anastasia,<br></div><div><br></div><div>Thanks for sending a patch.</div><div><br></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Aug 13, 2024 at 12:34 PM Anastasia Belova <<a href="mailto:abelova@astralinux.ru" target="_blank">abelova@astralinux.ru</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Cc'ing Victor Toso<br>
<br>
01/07/24 14:11, Anastasia Belova:<br>
> pkts_per_transfer < MAX_PACKETS_PER_TRANSFER = 32.<br>
> transfer_count < MAX_TRANSFER_COUNT = 16.<br>
> max_packetsize = maxp * mult. mult <= 3.<br>
> maxp <= 0x7ff. If all variables have their max value,<br>
> the result will be bigger that uint16_t.<br>
> Add an explicit cast.<br>
><br>
> Signed-off-by: Anastasia Belova <<a href="mailto:abelova@astralinux.ru" target="_blank">abelova@astralinux.ru</a>><br>
> ---<br>
>   usbredirhost/usbredirhost.c | 2 +-<br>
>   1 file changed, 1 insertion(+), 1 deletion(-)<br>
><br>
> diff --git a/usbredirhost/usbredirhost.c b/usbredirhost/usbredirhost.c<br>
> index 03c56e9..ca19473 100644<br>
> --- a/usbredirhost/usbredirhost.c<br>
> +++ b/usbredirhost/usbredirhost.c<br>
> @@ -1193,7 +1193,7 @@ static void usbredirhost_stop_stream(struct usbredirhost *host,<br>
>   static void usbredirhost_set_iso_threshold(struct usbredirhost *host,<br>
>       uint8_t pkts_per_transfer, uint8_t transfer_count, uint16_t max_packetsize)<br>
>   {<br>
> -    uint64_t reference = pkts_per_transfer * transfer_count * max_packetsize;<br>
> +    uint64_t reference = (uint64_t)pkts_per_transfer * transfer_count * max_packetsize;<br></blockquote><div><br></div><div>It feels safer.</div><div>I think it's already not a problem, since all multiplication arguments are of</div><div>small integer types, so they are promoted to int, like</div><div>      uint64_t reference = (int)pkts_per_transfer * (int)transfer_count * (int)max_packetsize</div><div>which is smaller than 32*16*3*2048 < INT_MAX (for a 4 bytes int)</div><div><br></div><div>Regards,</div><div>    Uri.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
>       host->iso_threshold.lower = reference / 2;<br>
>       host->iso_threshold.higher = reference * 3;<br>
>       DEBUG("higher threshold is %" PRIu64 " bytes | lower threshold is %" PRIu64 " bytes",<br>
<br>
</blockquote></div></div>