lkml.org 
[lkml]   [2019]   [Jan]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.14 115/170] xfrm6_tunnel: Fix spi check in __xfrm6_tunnel_alloc_spi
    Date
    From: YueHaibing <yuehaibing@huawei.com>

    [ Upstream commit fa89a4593b927b3f59c3b69379f31d3b22272e4e ]

    gcc warn this:

    net/ipv6/xfrm6_tunnel.c:143 __xfrm6_tunnel_alloc_spi() warn:
    always true condition '(spi <= 4294967295) => (0-u32max <= u32max)'

    'spi' is u32, which always not greater than XFRM6_TUNNEL_SPI_MAX
    because of wrap around. So the second forloop will never reach.

    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    net/ipv6/xfrm6_tunnel.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/net/ipv6/xfrm6_tunnel.c b/net/ipv6/xfrm6_tunnel.c
    index 4e438bc7ee87..c28e3eaad7c2 100644
    --- a/net/ipv6/xfrm6_tunnel.c
    +++ b/net/ipv6/xfrm6_tunnel.c
    @@ -144,6 +144,9 @@ static u32 __xfrm6_tunnel_alloc_spi(struct net *net, xfrm_address_t *saddr)
    index = __xfrm6_tunnel_spi_check(net, spi);
    if (index >= 0)
    goto alloc_spi;
    +
    + if (spi == XFRM6_TUNNEL_SPI_MAX)
    + break;
    }
    for (spi = XFRM6_TUNNEL_SPI_MIN; spi < xfrm6_tn->spi; spi++) {
    index = __xfrm6_tunnel_spi_check(net, spi);
    --
    2.19.1
    \
     
     \ /
      Last update: 2019-01-28 17:58    [W:4.136 / U:0.224 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site