lkml.org 
[lkml]   [2018]   [Apr]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL for 4.15 112/189] tcp_nv: fix potential integer overflow in tcpnv_acked
    Date
    From: "Gustavo A. R. Silva" <gustavo@embeddedor.com>

    [ Upstream commit e4823fbd229bfbba368b40cdadb8f4eeb20604cc ]

    Add suffix ULL to constant 80000 in order to avoid a potential integer
    overflow and give the compiler complete information about the proper
    arithmetic to use. Notice that this constant is used in a context that
    expects an expression of type u64.

    The current cast to u64 effectively applies to the whole expression
    as an argument of type u64 to be passed to div64_u64, but it does
    not prevent it from being evaluated using 32-bit arithmetic instead
    of 64-bit arithmetic.

    Also, once the expression is properly evaluated using 64-bit arithmentic,
    there is no need for the parentheses and the external cast to u64.

    Addresses-Coverity-ID: 1357588 ("Unintentional integer overflow")
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    ---
    net/ipv4/tcp_nv.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/net/ipv4/tcp_nv.c b/net/ipv4/tcp_nv.c
    index 0b5a05bd82e3..d18f4672beae 100644
    --- a/net/ipv4/tcp_nv.c
    +++ b/net/ipv4/tcp_nv.c
    @@ -364,7 +364,7 @@ static void tcpnv_acked(struct sock *sk, const struct ack_sample *sample)
    */
    cwnd_by_slope = (u32)
    div64_u64(((u64)ca->nv_rtt_max_rate) * ca->nv_min_rtt,
    - (u64)(80000 * tp->mss_cache));
    + 80000ULL * tp->mss_cache);
    max_win = cwnd_by_slope + nv_pad;

    /* If cwnd > max_win, decrease cwnd
    --
    2.15.1
    \
     
     \ /
      Last update: 2018-04-09 05:51    [W:9.088 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site