| From 577abda8949c22c75857badedaa69d28ecc9580c Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 19 Feb 2020 12:01:29 -0700 |
| Subject: cgroup1: don't call release_agent when it is "" |
| |
| From: Tycho Andersen <tycho@tycho.ws> |
| |
| [ Upstream commit 2e5383d7904e60529136727e49629a82058a5607 ] |
| |
| Older (and maybe current) versions of systemd set release_agent to "" when |
| shutting down, but do not set notify_on_release to 0. |
| |
| Since 64e90a8acb85 ("Introduce STATIC_USERMODEHELPER to mediate |
| call_usermodehelper()"), we filter out such calls when the user mode helper |
| path is "". However, when used in conjunction with an actual (i.e. non "") |
| STATIC_USERMODEHELPER, the path is never "", so the real usermode helper |
| will be called with argv[0] == "". |
| |
| Let's avoid this by not invoking the release_agent when it is "". |
| |
| Signed-off-by: Tycho Andersen <tycho@tycho.ws> |
| Signed-off-by: Tejun Heo <tj@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| kernel/cgroup/cgroup-v1.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/kernel/cgroup/cgroup-v1.c b/kernel/cgroup/cgroup-v1.c |
| index 2db582706ec5c..f684c82efc2ea 100644 |
| --- a/kernel/cgroup/cgroup-v1.c |
| +++ b/kernel/cgroup/cgroup-v1.c |
| @@ -784,7 +784,7 @@ void cgroup1_release_agent(struct work_struct *work) |
| |
| pathbuf = kmalloc(PATH_MAX, GFP_KERNEL); |
| agentbuf = kstrdup(cgrp->root->release_agent_path, GFP_KERNEL); |
| - if (!pathbuf || !agentbuf) |
| + if (!pathbuf || !agentbuf || !strlen(agentbuf)) |
| goto out; |
| |
| spin_lock_irq(&css_set_lock); |
| -- |
| 2.20.1 |
| |