From: Al Viro Date: Sun, 21 Jul 2024 18:45:08 +0000 (-0400) Subject: memcg_write_event_control(): fix a user-triggerable oops X-Git-Tag: v6.10.7~205 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=21b578f1d599edb87462f11113c5b0fc7a04ac61;p=thirdparty%2Fkernel%2Fstable.git memcg_write_event_control(): fix a user-triggerable oops commit 046667c4d3196938e992fba0dfcde570aa85cd0e upstream. we are *not* guaranteed that anything past the terminating NUL is mapped (let alone initialized with anything sane). Fixes: 0dea116876ee ("cgroup: implement eventfd-based generic API for notifications") Cc: stable@vger.kernel.org Cc: Andrew Morton Acked-by: Michal Hocko Signed-off-by: Al Viro Signed-off-by: Greg Kroah-Hartman --- diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 88c7a0861017c..332f190bf3d6b 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -5282,9 +5282,12 @@ static ssize_t memcg_write_event_control(struct kernfs_open_file *of, buf = endp + 1; cfd = simple_strtoul(buf, &endp, 10); - if ((*endp != ' ') && (*endp != '\0')) + if (*endp == '\0') + buf = endp; + else if (*endp == ' ') + buf = endp + 1; + else return -EINVAL; - buf = endp + 1; event = kzalloc(sizeof(*event), GFP_KERNEL); if (!event)