Patch "powerpc/watchpoint/ptrace: Fix SETHWDEBUG when CONFIG_HAVE_HW_BREAKPOINT=N" has been added to the 5.9-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

    powerpc/watchpoint/ptrace: Fix SETHWDEBUG when CONFIG_HAVE_HW_BREAKPOINT=N

to the 5.9-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:
     powerpc-watchpoint-ptrace-fix-sethwdebug-when-config.patch
and it can be found in the queue-5.9 subdirectory.

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



commit aabd62eeadeb16f096eff9f11f67db15e25be67a
Author: Ravi Bangoria <ravi.bangoria@xxxxxxxxxxxxx>
Date:   Wed Sep 2 09:59:40 2020 +0530

    powerpc/watchpoint/ptrace: Fix SETHWDEBUG when CONFIG_HAVE_HW_BREAKPOINT=N
    
    [ Upstream commit 9b6b7c680cc20971444d9f836e49fc98848bcd0a ]
    
    When kernel is compiled with CONFIG_HAVE_HW_BREAKPOINT=N, user can
    still create watchpoint using PPC_PTRACE_SETHWDEBUG, with limited
    functionalities. But, such watchpoints are never firing because of
    the missing privilege settings. Fix that.
    
    It's safe to set HW_BRK_TYPE_PRIV_ALL because we don't really leak
    any kernel address in signal info. Setting HW_BRK_TYPE_PRIV_ALL will
    also help to find scenarios when kernel accesses user memory.
    
    Reported-by: Pedro Miraglia Franco de Carvalho <pedromfc@xxxxxxxxxxxxx>
    Suggested-by: Pedro Miraglia Franco de Carvalho <pedromfc@xxxxxxxxxxxxx>
    Signed-off-by: Ravi Bangoria <ravi.bangoria@xxxxxxxxxxxxx>
    Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20200902042945.129369-4-ravi.bangoria@xxxxxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/powerpc/kernel/ptrace/ptrace-noadv.c b/arch/powerpc/kernel/ptrace/ptrace-noadv.c
index 8bd8d8de5c40b..a570782e954be 100644
--- a/arch/powerpc/kernel/ptrace/ptrace-noadv.c
+++ b/arch/powerpc/kernel/ptrace/ptrace-noadv.c
@@ -217,7 +217,7 @@ long ppc_set_hwdebug(struct task_struct *child, struct ppc_hw_breakpoint *bp_inf
 		return -EIO;
 
 	brk.address = ALIGN_DOWN(bp_info->addr, HW_BREAKPOINT_SIZE);
-	brk.type = HW_BRK_TYPE_TRANSLATE;
+	brk.type = HW_BRK_TYPE_TRANSLATE | HW_BRK_TYPE_PRIV_ALL;
 	brk.len = DABR_MAX_LEN;
 	brk.hw_len = DABR_MAX_LEN;
 	if (bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_READ)



[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