projects
/
platform
/
kernel
/
linux-rpi.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
fcc1ce5
)
Drivers: misc: fix out-of-bounds access in function param_set_kgdbts_var
author
Young Xiao
<YangX92@hotmail.com>
Fri, 12 Apr 2019 07:45:06 +0000
(15:45 +0800)
committer
Greg Kroah-Hartman
<gregkh@linuxfoundation.org>
Wed, 19 Jun 2019 06:18:02 +0000
(08:18 +0200)
[ 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
patch
|
blob
|
history
diff --git
a/drivers/misc/kgdbts.c
b/drivers/misc/kgdbts.c
index
6193270
..
eb4d90b
100644
(file)
--- a/
drivers/misc/kgdbts.c
+++ b/
drivers/misc/kgdbts.c
@@
-1139,7
+1139,7
@@
static void kgdbts_put_char(u8 chr)
static int param_set_kgdbts_var(const char *kmessage,
const struct kernel_param *kp)
{
-
in
t len = strlen(kmessage);
+
size_
t len = strlen(kmessage);
if (len >= MAX_CONFIG_LEN) {
printk(KERN_ERR "kgdbts: config string too long\n");
@@
-1159,7
+1159,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. */