lkml.org 
[lkml]   [2024]   [Mar]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.4 21/23] block: prevent division by zero in blk_rq_stat_sum()
    Date
    From: Roman Smirnov <r.smirnov@omp.ru>

    [ Upstream commit 93f52fbeaf4b676b21acfe42a5152620e6770d02 ]

    The expression dst->nr_samples + src->nr_samples may
    have zero value on overflow. It is necessary to add
    a check to avoid division by zero.

    Found by Linux Verification Center (linuxtesting.org) with Svace.

    Signed-off-by: Roman Smirnov <r.smirnov@omp.ru>
    Reviewed-by: Sergey Shtylyov <s.shtylyov@omp.ru>
    Link: https://lore.kernel.org/r/20240305134509.23108-1-r.smirnov@omp.ru
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    block/blk-stat.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/block/blk-stat.c b/block/blk-stat.c
    index 940f15d600f8a..af482d8f9f7a4 100644
    --- a/block/blk-stat.c
    +++ b/block/blk-stat.c
    @@ -28,7 +28,7 @@ void blk_rq_stat_init(struct blk_rq_stat *stat)
    /* src is a per-cpu stat, mean isn't initialized */
    void blk_rq_stat_sum(struct blk_rq_stat *dst, struct blk_rq_stat *src)
    {
    - if (!src->nr_samples)
    + if (dst->nr_samples + src->nr_samples <= dst->nr_samples)
    return;

    dst->min = min(dst->min, src->min);
    --
    2.43.0

    \
     
     \ /
      Last update: 2024-05-27 16:15    [W:4.041 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site