Messages in this thread Patch in this message | | | Subject | Re: Possible memory leak in fs/sysfs/bin.c | From | Catalin Marinas <> | Date | Tue, 07 Jul 2009 14:16:13 +0100 |
| |
Parag Warudkar <parag.warudkar@gmail.com> wrote: > Catalin Marinas <catalin.marinas <at> arm.com> writes: > >> --- a/fs/sysfs/bin.c >> +++ b/fs/sysfs/bin.c >> @@ -164,6 +164,7 @@ static ssize_t write(struct file *file, const char >> __user *userbuf, >> mutex_lock(&bb->mutex); >> >> memcpy(bb->buffer, temp, count); >> + kfree(temp); > > Does the kfree() need to be inside the mutex_lock? Otherwise looks > OK to me.
Here's the updated patch:
Free the memory allocated by memdup_user() in fs/sysfs/bin.c
Commit 1c8542c7bb replaced kmalloc() with memdup_user() in the write() function but also dropped the kfree(temp). The memdup_user() function allocates memory which is never freed.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> --- fs/sysfs/bin.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/fs/sysfs/bin.c b/fs/sysfs/bin.c index 9345806..2524714 100644 --- a/fs/sysfs/bin.c +++ b/fs/sysfs/bin.c @@ -171,6 +171,7 @@ static ssize_t write(struct file *file, const char __user *userbuf, if (count > 0) *off = offs + count; + kfree(temp); return count; } -- Catalin
| |