lkml.org 
[lkml]   [2022]   [Oct]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 374/530] crypto: hisilicon/zip - fix mismatch in get/set sgl_sge_nr
    Date
    From: Ye Weihua <yeweihua4@huawei.com>

    [ Upstream commit d74f9340097a881869c4c22ca376654cc2516ecc ]

    KASAN reported this Bug:

    [17619.659757] BUG: KASAN: global-out-of-bounds in param_get_int+0x34/0x60
    [17619.673193] Read of size 4 at addr fffff01332d7ed00 by task read_all/1507958
    ...
    [17619.698934] The buggy address belongs to the variable:
    [17619.708371] sgl_sge_nr+0x0/0xffffffffffffa300 [hisi_zip]

    There is a mismatch in hisi_zip when get/set the variable sgl_sge_nr.
    The type of sgl_sge_nr is u16, and get/set sgl_sge_nr by
    param_get/set_int.

    Replacing param_get/set_int to param_get/set_ushort can fix this bug.

    Fixes: f081fda293ffb ("crypto: hisilicon - add sgl_sge_nr module param for zip")
    Signed-off-by: Ye Weihua <yeweihua4@huawei.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/crypto/hisilicon/zip/zip_crypto.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/drivers/crypto/hisilicon/zip/zip_crypto.c b/drivers/crypto/hisilicon/zip/zip_crypto.c
    index 9520a4113c81..a91e6e0e9c69 100644
    --- a/drivers/crypto/hisilicon/zip/zip_crypto.c
    +++ b/drivers/crypto/hisilicon/zip/zip_crypto.c
    @@ -122,12 +122,12 @@ static int sgl_sge_nr_set(const char *val, const struct kernel_param *kp)
    if (ret || n == 0 || n > HISI_ACC_SGL_SGE_NR_MAX)
    return -EINVAL;

    - return param_set_int(val, kp);
    + return param_set_ushort(val, kp);
    }

    static const struct kernel_param_ops sgl_sge_nr_ops = {
    .set = sgl_sge_nr_set,
    - .get = param_get_int,
    + .get = param_get_ushort,
    };

    static u16 sgl_sge_nr = HZIP_SGL_SGE_NR;
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-10-24 17:57    [W:2.106 / U:0.416 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site