lkml.org 
[lkml]   [2009]   [Jan]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] ram_console: Disable ECC when early init is enabled and validate buffer size
    Date
    Signed-off-by: Arve Hjønnevåg <arve@android.com>
    ---
    drivers/staging/android/Kconfig | 1 +
    drivers/staging/android/ram_console.c | 14 ++++++++++++++
    2 files changed, 15 insertions(+), 0 deletions(-)

    diff --git a/drivers/staging/android/Kconfig b/drivers/staging/android/Kconfig
    index 6b996db..604bd1e 100644
    --- a/drivers/staging/android/Kconfig
    +++ b/drivers/staging/android/Kconfig
    @@ -27,6 +27,7 @@ menuconfig ANDROID_RAM_CONSOLE_ERROR_CORRECTION
    bool "Android RAM Console Enable error correction"
    default n
    depends on ANDROID_RAM_CONSOLE
    + depends on !ANDROID_RAM_CONSOLE_EARLY_INIT
    select REED_SOLOMON
    select REED_SOLOMON_ENC8
    select REED_SOLOMON_DEC8
    diff --git a/drivers/staging/android/ram_console.c b/drivers/staging/android/ram_console.c
    index bf00685..643ac5c 100644
    --- a/drivers/staging/android/ram_console.c
    +++ b/drivers/staging/android/ram_console.c
    @@ -224,9 +224,23 @@ static int __init ram_console_init(struct ram_console_buffer *buffer,
    ram_console_buffer_size =
    buffer_size - sizeof(struct ram_console_buffer);

    + if (ram_console_buffer_size > buffer_size) {
    + pr_err("ram_console: buffer %p, invalid size %d, datasize %d\n",
    + buffer, buffer_size, ram_console_buffer_size);
    + return 0;
    + }
    +
    #ifdef CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION
    ram_console_buffer_size -= (DIV_ROUND_UP(ram_console_buffer_size,
    ECC_BLOCK_SIZE) + 1) * ECC_SIZE;
    +
    + if (ram_console_buffer_size > buffer_size) {
    + pr_err("ram_console: buffer %p, invalid size %d, "
    + "non-ecc datasize %d\n",
    + buffer, buffer_size, ram_console_buffer_size);
    + return 0;
    + }
    +
    ram_console_par_buffer = buffer->data + ram_console_buffer_size;


    --
    1.6.1
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2009-01-31 05:23    [W:0.023 / U:58.896 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site