lkml.org 
[lkml]   [2012]   [Aug]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[ 07/82] lib/vsprintf.c: kptr_restrict: fix pK-error in SysRq show-all-timers(Q)
    Date
    From: Greg KH <gregkh@linuxfoundation.org>

    3.5-stable review patch. If anyone has any objections, please let me know.

    ------------------

    From: Dan Rosenberg <drosenberg@vsecurity.com>

    commit 3715c5309f6d175c3053672b73fd4f73be16fd07 upstream.

    When using ALT+SysRq+Q all the pointers are replaced with "pK-error" like
    this:

    [23153.208033] .base: pK-error

    with echo h > /proc/sysrq-trigger it works:

    [23107.776363] .base: ffff88023e60d540

    The intent behind this behavior was to return "pK-error" in cases where
    the %pK format specifier was used in interrupt context, because the
    CAP_SYSLOG check wouldn't be meaningful. Clearly this should only apply
    when kptr_restrict is actually enabled though.

    Reported-by: Stevie Trujillo <stevie.trujillo@gmail.com>
    Signed-off-by: Dan Rosenberg <dan.j.rosenberg@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    lib/vsprintf.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    --- a/lib/vsprintf.c
    +++ b/lib/vsprintf.c
    @@ -1030,7 +1030,8 @@ char *pointer(const char *fmt, char *buf
    * %pK cannot be used in IRQ context because its test
    * for CAP_SYSLOG would be meaningless.
    */
    - if (in_irq() || in_serving_softirq() || in_nmi()) {
    + if (kptr_restrict && (in_irq() || in_serving_softirq() ||
    + in_nmi())) {
    if (spec.field_width == -1)
    spec.field_width = default_width;
    return string(buf, end, "pK-error", spec);



    \
     
     \ /
      Last update: 2012-08-14 02:21    [W:6.436 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site