lkml.org 
[lkml]   [2018]   [Sep]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 076/115] powerpc/pseries: Avoid using the size greater than RTAS_ERROR_LOG_MAX.
    Date
    4.14-stable review patch.  If anyone has any objections, please let me know.

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

    From: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>

    [ Upstream commit 74e96bf44f430cf7a01de19ba6cf49b361cdfd6e ]

    The global mce data buffer that used to copy rtas error log is of 2048
    (RTAS_ERROR_LOG_MAX) bytes in size. Before the copy we read
    extended_log_length from rtas error log header, then use max of
    extended_log_length and RTAS_ERROR_LOG_MAX as a size of data to be copied.
    Ideally the platform (phyp) will never send extended error log with
    size > 2048. But if that happens, then we have a risk of buffer overrun
    and corruption. Fix this by using min_t instead.

    Fixes: d368514c3097 ("powerpc: Fix corruption when grabbing FWNMI data")
    Reported-by: Michal Suchanek <msuchanek@suse.com>
    Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    arch/powerpc/platforms/pseries/ras.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/arch/powerpc/platforms/pseries/ras.c
    +++ b/arch/powerpc/platforms/pseries/ras.c
    @@ -371,7 +371,7 @@ static struct rtas_error_log *fwnmi_get_
    int len, error_log_length;

    error_log_length = 8 + rtas_error_extended_log_length(h);
    - len = max_t(int, error_log_length, RTAS_ERROR_LOG_MAX);
    + len = min_t(int, error_log_length, RTAS_ERROR_LOG_MAX);
    memset(global_mce_data_buf, 0, RTAS_ERROR_LOG_MAX);
    memcpy(global_mce_data_buf, h, len);
    errhdr = (struct rtas_error_log *)global_mce_data_buf;

    \
     
     \ /
      Last update: 2018-09-13 16:14    [W:4.554 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site