diff options
author | Kazimierz Krosman <k.krosman@samsung.com> | 2016-02-16 17:32:15 +0100 |
---|---|---|
committer | Seung-Woo Kim <sw0312.kim@samsung.com> | 2016-12-14 13:49:18 +0900 |
commit | fc10f7150e0aa7b53db24e2fbac8528f4346454f (patch) | |
tree | ffeb889c4bc5b1557db3ca8c050087f63a07d1c7 /kernel | |
parent | 9a045978682859ff65420aa63ba1d8e182b1be91 (diff) |
Fix: bug that allows adding more dev than max minor number
Signed-off-by: Kazimierz Krosman <k.krosman@samsung.com>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/printk/printk.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index 3a36b81151fd..0f25428ea963 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -273,6 +273,7 @@ static enum log_flags console_prev; #define PREFIX_MAX 32 #define LOG_LINE_MAX (1024 - PREFIX_MAX) +#define KMSG_NUM_MAX 255 /* record buffer */ #if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS) @@ -1507,7 +1508,7 @@ int kmsg_sys_buffer_add(size_t size, umode_t mode) minor = log_b->minor; } - if (!(minor & MINORMASK)) { + if (!(minor & MINORMASK) || (minor & MINORMASK) >= KMSG_NUM_MAX) { kref_put(&log_b->refcount, log_buf_release); spin_unlock_irqrestore(&kmsg_sys_list_lock, flags); return -ERANGE; |