John Sperbeck
2bd1103392
cgroup: always put cset in cgroup_css_set_put_fork
...
A successful call to cgroup_css_set_fork() will always have taken
a ref on kargs->cset (regardless of CLONE_INTO_CGROUP), so always
do a corresponding put in cgroup_css_set_put_fork().
Without this, a cset and its contained css structures will be
leaked for some fork failures. The following script reproduces
the leak for a fork failure due to exceeding pids.max in the
pids controller. A similar thing can happen if we jump to the
bad_fork_cancel_cgroup label in copy_process().
[ -z "$1" ] && echo "Usage $0 pids-root" && exit 1
PID_ROOT=$1
CGROUP=$PID_ROOT/foo
[ -e $CGROUP ] && rmdir -f $CGROUP
mkdir $CGROUP
echo 5 > $CGROUP/pids.max
echo $$ > $CGROUP/cgroup.procs
fork_bomb()
{
set -e
for i in $(seq 10); do
/bin/sleep 3600 &
done
}
(fork_bomb) &
wait
echo $$ > $PID_ROOT/cgroup.procs
kill $(cat $CGROUP/cgroup.procs)
rmdir $CGROUP
Fixes: ef2c41cf38 ("clone3: allow spawning processes into cgroups")
Cc: stable@vger.kernel.org # v5.7+
Signed-off-by: John Sperbeck <jsperbeck@google.com >
Signed-off-by: Tejun Heo <tj@kernel.org >
2023-05-22 13:59:37 -10:00
..
2023-04-29 10:05:22 -07:00
2023-05-22 13:59:37 -10:00
2023-04-27 12:07:50 -07:00
2022-12-02 11:25:00 +01:00
2023-04-29 10:29:57 -07:00
2023-04-16 14:23:07 +02:00
2023-05-08 10:58:26 +02:00
2023-01-01 11:15:05 -08:00
2022-12-21 14:31:52 -08:00
2023-04-15 10:17:16 +02:00
2023-04-27 19:42:02 -07:00
2023-04-28 14:53:30 -07:00
2023-05-08 10:58:24 +02:00
2023-05-02 20:33:36 -07:00
2023-05-03 12:01:05 -07:00
2023-04-27 19:42:02 -07:00
2023-04-24 12:16:14 -07:00
2023-05-08 10:58:28 +02:00
2023-05-08 23:18:16 +02:00
2023-05-18 07:08:01 +09:00
2021-05-02 00:43:35 +09:00
2022-11-30 16:13:18 -08:00
2022-02-03 11:20:34 -08:00
2022-08-22 18:50:06 -04:00
2022-04-25 14:37:28 +02:00
2022-09-01 17:39:30 -04:00
2022-08-29 19:47:03 -04:00
2022-09-07 11:30:15 -04:00
2022-01-11 13:08:21 -08:00
2023-03-01 10:01:22 -08:00
2020-07-30 11:15:58 -07:00
2022-09-26 19:46:09 -07:00
2023-03-01 10:01:22 -08:00
2022-09-26 10:13:13 -07:00
2023-03-14 19:32:38 -07:00
2020-02-04 03:05:26 +00:00
2023-01-13 11:48:18 +01:00
2023-01-13 11:48:15 +01:00
2023-04-27 19:42:02 -07:00
2023-04-05 19:42:46 -07:00
2020-04-15 11:21:54 +02:00
2022-11-01 10:04:52 -07:00
2023-04-18 16:39:34 -07:00
2023-04-28 15:57:53 -07:00
2022-07-05 13:32:59 -07:00
2023-02-08 13:36:22 +01:00
2023-04-30 13:00:38 -07:00
2022-09-07 21:53:50 +02:00
2023-01-22 23:43:34 +09:00
2022-07-15 18:21:49 +00:00
2023-04-08 13:45:37 -07:00
2023-03-24 11:01:29 +01:00
2022-12-01 15:53:05 -08:00
2022-11-12 18:47:36 -08:00
2023-03-19 13:27:19 -07:00
2022-11-15 00:42:02 -08:00
2023-03-19 13:27:19 -07:00
2020-12-15 19:36:48 -08:00
2021-08-17 17:50:51 +02:00
2022-03-31 10:36:55 +02:00
2023-02-09 16:51:39 -08:00
2023-02-23 17:55:40 -08:00
2023-04-08 13:45:38 -07:00
2022-09-11 21:55:06 -07:00
2023-02-02 22:50:05 -08:00
2023-03-24 20:10:59 -07:00
2023-02-21 08:49:16 +09:00
2023-03-24 17:09:14 +01:00
2023-04-27 19:42:02 -07:00
2022-09-11 21:55:12 -07:00
2023-04-27 16:36:55 -07:00
2021-01-19 10:24:45 +01:00
2023-04-08 13:45:38 -07:00
2023-04-20 22:55:35 -04:00
2023-03-14 17:06:44 +08:00
2023-04-14 17:31:26 +02:00
2023-03-09 12:55:15 -08:00
2023-05-02 19:23:29 -07:00
2023-05-02 19:23:29 -07:00
2023-04-03 11:16:56 +02:00
2022-09-11 21:55:12 -07:00
2023-04-16 14:23:07 +02:00
2020-10-16 11:11:19 -07:00
2022-10-04 15:59:36 +02:00
2020-07-27 14:31:12 -04:00
2023-05-02 17:23:27 -07:00
2020-11-25 18:52:35 +01:00
2023-02-17 14:58:01 -08:00
2022-12-27 12:52:12 +01:00
2022-04-11 17:07:29 -07:00
2022-11-09 18:06:35 +00:00
2023-04-13 11:49:20 -07:00
2023-04-16 09:00:18 +02:00
2023-03-24 11:01:30 +01:00
2022-09-11 21:55:10 -07:00
2023-04-15 10:17:16 +02:00
2023-04-20 11:36:35 +02:00
2022-02-25 09:36:06 +01:00
2022-10-17 16:41:16 +02:00
2022-04-05 09:59:38 +02:00
2022-05-24 11:11:13 -07:00
2022-08-20 15:17:45 -07:00
2023-05-02 17:21:49 -07:00
2022-09-08 16:56:45 -07:00
2023-04-13 11:49:35 -07:00
2022-09-11 21:55:10 -07:00
2022-08-29 12:47:15 +01:00
2023-01-05 12:10:35 -08:00
2023-02-18 14:34:36 -05:00
2022-04-29 14:38:03 -07:00
2022-05-18 18:24:57 -05:00
2023-03-03 16:18:19 -08:00
2021-05-09 13:07:03 -07:00
2023-02-02 22:50:04 -08:00
2022-11-30 20:16:49 -04:00
2022-05-19 23:25:47 -04:00
2023-04-13 11:49:35 -07:00
2020-08-19 14:13:20 +02:00
2023-03-23 12:45:36 +01:00
2023-04-27 16:36:55 -07:00
2022-06-23 18:41:40 +02:00
2022-08-06 16:38:17 -07:00
2021-08-17 07:49:10 -10:00
2023-04-29 09:48:52 -07:00