lkml.org 
[lkml]   [2019]   [Jun]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.1 07/60] Drivers: misc: fix out-of-bounds access in function param_set_kgdbts_var
    Date
    From: Young Xiao <YangX92@hotmail.com>

    [ Upstream commit b281218ad4311a0342a40cb02fb17a363df08b48 ]

    There is an out-of-bounds access to "config[len - 1]" array when the
    variable "len" is zero.

    See commit dada6a43b040 ("kgdboc: fix KASAN global-out-of-bounds bug
    in param_set_kgdboc_var()") for details.

    Signed-off-by: Young Xiao <YangX92@hotmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/misc/kgdbts.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/drivers/misc/kgdbts.c b/drivers/misc/kgdbts.c
    index de20bdaa148d..8b01257783dd 100644
    --- a/drivers/misc/kgdbts.c
    +++ b/drivers/misc/kgdbts.c
    @@ -1135,7 +1135,7 @@ static void kgdbts_put_char(u8 chr)
    static int param_set_kgdbts_var(const char *kmessage,
    const struct kernel_param *kp)
    {
    - int len = strlen(kmessage);
    + size_t len = strlen(kmessage);

    if (len >= MAX_CONFIG_LEN) {
    printk(KERN_ERR "kgdbts: config string too long\n");
    @@ -1155,7 +1155,7 @@ static int param_set_kgdbts_var(const char *kmessage,

    strcpy(config, kmessage);
    /* Chop out \n char as a result of echo */
    - if (config[len - 1] == '\n')
    + if (len && config[len - 1] == '\n')
    config[len - 1] = '\0';

    /* Go and configure with the new params. */
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-06-05 01:33    [W:4.388 / U:0.064 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site