> 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