RE: [PATCH 03/47] RDMA/cma: Avoid triggering undefined behavior

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> According to the C standard the behavior of computations with integer
> operands is as follows:
> * A computation involving unsigned operands can never overflow,
>   because a result that cannot be represented by the resulting
>   unsigned integer type is reduced modulo the number that is one
>   greater than the largest value that can be represented by the
>   resulting type.
> * The behavior for signed integer underflow and overflow is
>   undefined.
> 
> Hence only use unsigned integers when checking for integer overflow.
> 
> This patch is what I came up with after having analyzed the following
> smatch warnings:
> 
> drivers/infiniband/core/cma.c:3448: cma_resolve_ib_udp() warn: signed
> overflow undefined. 'offset + conn_param->private_data_len <
> conn_param->private_data_len'
> drivers/infiniband/core/cma.c:3505: cma_connect_ib() warn: signed
> overflow undefined. 'offset + conn_param->private_data_len <
> conn_param->private_data_len'
> 
> Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxx>


Acked-by: Sean Hefty <sean.hefty@xxxxxxxxx>


--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux