Messages in this thread Patch in this message | | | Date | Mon, 28 Jul 2008 10:20:56 +0800 | From | Li Zefan <> | Subject | [PATCH] cgroup: fix possible memory leak |
| |
There's a leak if copy_from_user() returns failure.
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> --- kernel/cgroup.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/kernel/cgroup.c b/kernel/cgroup.c index 657f8f8..28debe4 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c @@ -1424,14 +1424,17 @@ static ssize_t cgroup_write_string(struct cgroup *cgrp, struct cftype *cft, if (buffer == NULL) return -ENOMEM; } - if (nbytes && copy_from_user(buffer, userbuf, nbytes)) - return -EFAULT; + if (nbytes && copy_from_user(buffer, userbuf, nbytes)) { + retval = -EFAULT; + goto out; + } buffer[nbytes] = 0; /* nul-terminate */ strstrip(buffer); retval = cft->write_string(cgrp, cft, buffer); if (!retval) retval = nbytes; +out: if (buffer != local_buffer) kfree(buffer); return retval; -- 1.5.4.rc3
| |