From 6153336ed749c33ea42dd099e9ea1563d71d9a32 Mon Sep 17 00:00:00 2001 From: Li Zefan Date: Tue, 29 Jul 2008 22:33:18 -0700 Subject: [PATCH] --- yaml --- r: 106999 b: refs/heads/master c: 5a3eb9f6b7c598529f832b8baa6458ab1cbab2c6 h: refs/heads/master i: 106997: 53444dd7afeba33517f6151906f2b34cdd7d72c7 106995: 67c214e292f94291682610f427ae761e0003ed5f 106991: 2b372cbbb70d62d081c849962ed5b06c600c8a7d v: v3 --- [refs] | 2 +- trunk/kernel/cgroup.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 177629985a3a..65f40f51e512 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1d1958f05095a7e9ecbba86235122784a3d1b561 +refs/heads/master: 5a3eb9f6b7c598529f832b8baa6458ab1cbab2c6 diff --git a/trunk/kernel/cgroup.c b/trunk/kernel/cgroup.c index 657f8f8d93a5..28debe4e1488 100644 --- a/trunk/kernel/cgroup.c +++ b/trunk/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;