Patch "lkdtm/bugs: Check for the NULL pointer after calling kmalloc" has been added to the 5.10-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

    lkdtm/bugs: Check for the NULL pointer after calling kmalloc

to the 5.10-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:
     lkdtm-bugs-check-for-the-null-pointer-after-calling-.patch
and it can be found in the queue-5.10 subdirectory.

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



commit 1e4b2c82e1da3b1c2d1388503ad0d6d8bc945a90
Author: Jiasheng Jiang <jiasheng@xxxxxxxxxxx>
Date:   Thu Jan 20 17:29:36 2022 +0800

    lkdtm/bugs: Check for the NULL pointer after calling kmalloc
    
    [ Upstream commit 4a9800c81d2f34afb66b4b42e0330ae8298019a2 ]
    
    As the possible failure of the kmalloc(), the not_checked and checked
    could be NULL pointer.
    Therefore, it should be better to check it in order to avoid the
    dereference of the NULL pointer.
    Also, we need to kfree the 'not_checked' and 'checked' to avoid
    the memory leak if fails.
    And since it is just a test, it may directly return without error
    number.
    
    Fixes: ae2e1aad3e48 ("drivers/misc/lkdtm/bugs.c: add arithmetic overflow and array bounds checks")
    Signed-off-by: Jiasheng Jiang <jiasheng@xxxxxxxxxxx>
    Acked-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
    Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20220120092936.1874264-1-jiasheng@xxxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/misc/lkdtm/bugs.c b/drivers/misc/lkdtm/bugs.c
index a337f97b30e2..d39b8139b096 100644
--- a/drivers/misc/lkdtm/bugs.c
+++ b/drivers/misc/lkdtm/bugs.c
@@ -231,6 +231,11 @@ void lkdtm_ARRAY_BOUNDS(void)
 
 	not_checked = kmalloc(sizeof(*not_checked) * 2, GFP_KERNEL);
 	checked = kmalloc(sizeof(*checked) * 2, GFP_KERNEL);
+	if (!not_checked || !checked) {
+		kfree(not_checked);
+		kfree(checked);
+		return;
+	}
 
 	pr_info("Array access within bounds ...\n");
 	/* For both, touch all bytes in the actual member size. */



[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