Messages in this thread Patch in this message | | | From | KOSAKI Motohiro <> | Subject | [PATCH 3/3] Fix memory leak of do_mbind() | Date | Fri, 9 Oct 2009 10:09:18 +0900 (JST) |
| |
If migrate_prep is failed, new variable is leaked. This patch fixes it.
Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> --- mm/mempolicy.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 824abf3..38ce2a7 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -1027,7 +1027,7 @@ static long do_mbind(unsigned long start, unsigned long len, err = migrate_prep(); if (err) - return err; + goto mpol_out; } { NODEMASK_SCRATCH(scratch); @@ -1042,10 +1042,9 @@ static long do_mbind(unsigned long start, unsigned long len, err = -ENOMEM; NODEMASK_SCRATCH_FREE(scratch); } - if (err) { - mpol_put(new); - return err; - } + if (err) + goto mpol_out; + vma = check_range(mm, start, end, nmask, flags | MPOL_MF_INVERT, &pagelist); @@ -1066,6 +1065,7 @@ static long do_mbind(unsigned long start, unsigned long len, } up_write(&mm->mmap_sem); + mpol_out: mpol_put(new); return err; } -- 1.6.0.GIT
| |