diff options
author | Mark Wallis <mwallis@serialmonkey.com> | 2009-01-26 01:32:35 -0500 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2009-01-29 20:04:11 -0500 |
commit | 05dfdbbd678ea2b642db73f48b75667a23d15484 (patch) | |
tree | 63d4cbf36a1fdf11e77008bd169d02446469cc8b /drivers/lguest/lguest_user.c | |
parent | b44d49ab0954accefba4c71274ab58abe1c25c52 (diff) |
lguest: Fix a memory leak with the lg object during launcher close
Fix a memory leak identified by Rusty Russell during LCA09 by
kfree'ing the lg object instead of just clearing it when the
launcher closes.
Signed-off-by: Mark Wallis <mwallis@serialmonkey.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'drivers/lguest/lguest_user.c')
-rw-r--r-- | drivers/lguest/lguest_user.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/lguest/lguest_user.c b/drivers/lguest/lguest_user.c index 34bc017b8b3..b8ee103eed5 100644 --- a/drivers/lguest/lguest_user.c +++ b/drivers/lguest/lguest_user.c | |||
@@ -307,9 +307,8 @@ static int close(struct inode *inode, struct file *file) | |||
307 | * kmalloc()ed string, either of which is ok to hand to kfree(). */ | 307 | * kmalloc()ed string, either of which is ok to hand to kfree(). */ |
308 | if (!IS_ERR(lg->dead)) | 308 | if (!IS_ERR(lg->dead)) |
309 | kfree(lg->dead); | 309 | kfree(lg->dead); |
310 | /* We clear the entire structure, which also marks it as free for the | 310 | /* Free the memory allocated to the lguest_struct */ |
311 | * next user. */ | 311 | kfree(lg); |
312 | memset(lg, 0, sizeof(*lg)); | ||
313 | /* Release lock and exit. */ | 312 | /* Release lock and exit. */ |
314 | mutex_unlock(&lguest_lock); | 313 | mutex_unlock(&lguest_lock); |
315 | 314 | ||