lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 13 Oct 2021 10:23:43 +0000
From:   Yafang Shao <laoar.shao@...il.com>
To:     keescook@...omium.org, rostedt@...dmis.org, peterz@...radead.org,
        pmladek@...e.com, viro@...iv.linux.org.uk,
        akpm@...ux-foundation.org, valentin.schneider@....com,
        mathieu.desnoyers@...icios.com, qiang.zhang@...driver.com,
        robdclark@...omium.org, christian@...uner.io,
        dietmar.eggemann@....com, mingo@...hat.com, juri.lelli@...hat.com,
        vincent.guittot@...aro.org, bsegall@...gle.com, mgorman@...e.de,
        bristot@...hat.com, davem@...emloft.net, kuba@...nel.org
Cc:     linux-kernel@...r.kernel.org, Yafang Shao <laoar.shao@...il.com>,
        Vladimir Zapolskiy <vzapolskiy@...il.com>,
        David Howells <dhowells@...hat.com>
Subject: [PATCH v4 2/5] connector: use __get_task_comm in proc_comm_connector

connector comm was introduced in commit
f786ecba4158 ("connector: add comm change event report to proc connector").
struct comm_proc_event was defined in include/linux/cn_proc.h first and
then been moved into file include/uapi/linux/cn_proc.h in commit
607ca46e97a1 ("UAPI: (Scripted) Disintegrate include/linux").

As this is the UAPI code, we can't change it without potentially breaking
things (i.e. userspace binaries have this size built in, so we can't just
change the size). To prepare for the followup change - extending task
comm, we have to use __get_task_comm() to avoid the BUILD_BUG_ON() in
proc_comm_connector().

Suggested-by: Kees Cook <keescook@...omium.org>
Signed-off-by: Yafang Shao <laoar.shao@...il.com>
Cc: Vladimir Zapolskiy <vzapolskiy@...il.com>
Cc: Peter Zijlstra <peterz@...radead.org>
Cc: Steven Rostedt <rostedt@...dmis.org>
Cc: David Howells <dhowells@...hat.com>
Cc: Kees Cook <keescook@...omium.org>
Cc: Al Viro <viro@...iv.linux.org.uk>
Cc: Petr Mladek <pmladek@...e.com>
---
 drivers/connector/cn_proc.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/connector/cn_proc.c b/drivers/connector/cn_proc.c
index 646ad385e490..c88ba2dc1eae 100644
--- a/drivers/connector/cn_proc.c
+++ b/drivers/connector/cn_proc.c
@@ -230,7 +230,10 @@ void proc_comm_connector(struct task_struct *task)
 	ev->what = PROC_EVENT_COMM;
 	ev->event_data.comm.process_pid  = task->pid;
 	ev->event_data.comm.process_tgid = task->tgid;
-	get_task_comm(ev->event_data.comm.comm, task);
+
+	/* This may get truncated. */
+	__get_task_comm(ev->event_data.comm.comm,
+			sizeof(ev->event_data.comm.comm), task);
 
 	memcpy(&msg->id, &cn_proc_event_id, sizeof(msg->id));
 	msg->ack = 0; /* not used */
-- 
2.17.1

Powered by blists - more mailing lists