On Mon, 2015-12-28 at 00:16 -0500, Joshua Otto wrote:

Please check MAINTAINERS (perhaps using ./scripts/get_maintainers.pl) to
determine the maintainers in order to CC them.

(Hrm, I see now in your cover letter you have, I wonder why Jan et al are
missing?)

> From: Harley Armstrong <hjarm...@uwaterloo.ca>
> 
> Fix CID 1343302 by widening a constant used with uart_param.reg_shift to
> avoid overflow for large values of reg_shift.

A reg_shift large enough to actually expose this would be infeasibly large
(since it would imply a UART taking practically the entire virtual address
space of the processor).

So while Coverity is likely correct here, it is probably also a bit
misguided in the context.

I don't especially object to this change as means to quieten coverity, but
perhaps checking for some sane limit to reg_shift would also serve to
quieten coverity?

That would also avoid the need to check for overflow on the multiplication,
assuming a suitable sane limit was chosen.


> Signed-off-by: Harley Armstrong <hjarm...@uwaterloo.ca>
> ---
>  xen/drivers/char/ns16550.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
> index bc24015..546bba1 100644
> --- a/xen/drivers/char/ns16550.c
> +++ b/xen/drivers/char/ns16550.c
> @@ -913,7 +913,7 @@ pci_uart_config(struct ns16550 *uart, bool_t
> skip_amt, unsigned int bar_idx)
>                           * Force length of mmio region to be at least
>                           * 8 bytes times (1 << reg_shift)
>                           */
> -                        if ( size < (0x8 * (1 <<
> uart_param[p].reg_shift)) )
> +                        if ( size < (0x8 * (1ull << 
> uart_param[p].reg_shift)) )

It looks from the surrounding code like
  ... < (0x8 * ((u64)1 << uart_param[p].reg_shift)) )

would be the preferred way of tackling this.

>                              continue;
>  
>                          if ( bar_idx >= uart_param[p].max_bars )

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to