diff options
author | Paul Mundt <lethal@linux-sh.org> | 2009-02-12 17:27:56 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-02-12 17:27:56 +0900 |
commit | 41480ae7a383dcffa497decdd97b3cb2caaa18ec (patch) | |
tree | f1e3afce2cbd0bbc544cd86a73e5b3093eb081c4 /drivers/staging/android/ram_console.c | |
parent | 508eb2ce222053e51e2243b7add8eeac85b1d250 (diff) | |
parent | 34aeb43e2d3800f4d8f96feb9f1b49cd506679d5 (diff) |
Merge branch 'sh/stable-updates'
Diffstat (limited to 'drivers/staging/android/ram_console.c')
-rw-r--r-- | drivers/staging/android/ram_console.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/staging/android/ram_console.c b/drivers/staging/android/ram_console.c index bf006857a87..643ac5ce381 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; |