Patch "kdb: Fix the putarea helper function" 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

    kdb: Fix the putarea helper function

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:
     kdb-fix-the-putarea-helper-function.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 e08d444e10ee63dd36edba69530f73da4319f0e6
Author: Daniel Thompson <daniel.thompson@xxxxxxxxxx>
Date:   Fri Jan 28 14:40:55 2022 +0000

    kdb: Fix the putarea helper function
    
    [ Upstream commit c1cb81429df462eca1b6ba615cddd21dd3103c46 ]
    
    Currently kdb_putarea_size() uses copy_from_kernel_nofault() to write *to*
    arbitrary kernel memory. This is obviously wrong and means the memory
    modify ('mm') command is a serious risk to debugger stability: if we poke
    to a bad address we'll double-fault and lose our debug session.
    
    Fix this the (very) obvious way.
    
    Note that there are two Fixes: tags because the API was renamed and this
    patch will only trivially backport as far as the rename (and this is
    probably enough). Nevertheless Christoph's rename did not introduce this
    problem so I wanted to record that!
    
    Fixes: fe557319aa06 ("maccess: rename probe_kernel_{read,write} to copy_{from,to}_kernel_nofault")
    Fixes: 5d5314d6795f ("kdb: core for kgdb back end (1 of 2)")
    Signed-off-by: Daniel Thompson <daniel.thompson@xxxxxxxxxx>
    Reviewed-by: Douglas Anderson <dianders@xxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20220128144055.207267-1-daniel.thompson@xxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/kernel/debug/kdb/kdb_support.c b/kernel/debug/kdb/kdb_support.c
index df2bface866e..85cb51c4a17e 100644
--- a/kernel/debug/kdb/kdb_support.c
+++ b/kernel/debug/kdb/kdb_support.c
@@ -291,7 +291,7 @@ int kdb_getarea_size(void *res, unsigned long addr, size_t size)
  */
 int kdb_putarea_size(unsigned long addr, void *res, size_t size)
 {
-	int ret = copy_from_kernel_nofault((char *)addr, (char *)res, size);
+	int ret = copy_to_kernel_nofault((char *)addr, (char *)res, size);
 	if (ret) {
 		if (!KDB_STATE(SUPPRESS)) {
 			kdb_func_printf("Bad address 0x%lx\n", addr);



[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