aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUwe Geuder <busybox2017-ugeuder@snkmail.com>2017-07-19 22:08:08 +0300
committerDenys Vlasenko <vda.linux@googlemail.com>2017-07-20 13:39:41 +0200
commit9e2e0ff4ba7f4327ff35e353faba5bf234a70672 (patch)
tree74dfca7d2a7f4cd6f33bd5d1fe669666c7d56e6e
parent1ef3ce91c70cb6a536438132d3202ccb3eddadbc (diff)
downloadbusybox-9e2e0ff4ba7f4327ff35e353faba5bf234a70672.tar.gz
bootchartd: prevent premature stop by device mapper
Kernel thread kdmflush was recognized as display manager kdm, check for string length. Signed-off-by: Uwe Geuder <busybox2017-ugeuder@snkmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--init/bootchartd.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/init/bootchartd.c b/init/bootchartd.c
index ecbcab868..1b7006798 100644
--- a/init/bootchartd.c
+++ b/init/bootchartd.c
@@ -171,7 +171,9 @@ static int dump_procs(FILE *fp, int look_for_login_process)
p++;
strchrnul(p, ')')[0] = '\0';
/* Is it gdm, kdm or a getty? */
- if (((p[0] == 'g' || p[0] == 'k' || p[0] == 'x') && p[1] == 'd' && p[2] == 'm')
+ if (((p[0] == 'g' || p[0] == 'k' || p[0] == 'x')
+ && p[1] == 'd' && p[2] == 'm' && p[3] == '\0'
+ )
|| strstr(p, "getty")
) {
found_login_process = 1;