Patch "crypto: hisilicon/zip - fix mismatch in get/set sgl_sge_nr" has been added to the 5.15-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    crypto: hisilicon/zip - fix mismatch in get/set sgl_sge_nr

to the 5.15-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     crypto-hisilicon-zip-fix-mismatch-in-get-set-sgl_sge.patch
and it can be found in the queue-5.15 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit b0f109ffc36442e21bd745f7c3d7a13e91d3e6d1
Author: Ye Weihua <yeweihua4@xxxxxxxxxx>
Date:   Thu Jul 28 10:07:58 2022 +0800

    crypto: hisilicon/zip - fix mismatch in get/set sgl_sge_nr
    
    [ 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@xxxxxxxxxx>
    Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

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;



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux