summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorKazimierz Krosman <k.krosman@samsung.com>2016-02-16 17:32:15 +0100
committerSeung-Woo Kim <sw0312.kim@samsung.com>2016-12-14 13:49:18 +0900
commitfc10f7150e0aa7b53db24e2fbac8528f4346454f (patch)
treeffeb889c4bc5b1557db3ca8c050087f63a07d1c7 /kernel
parent9a045978682859ff65420aa63ba1d8e182b1be91 (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.c3
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;