Commit 7764b6de authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] Fix memleak on execve failure

From: IWAMOTO Toshihiro <iwamoto@valinux.co.jp>

I found linux-2.6.0-test11 leaks memory when execve fails.  I've also
checked the bitkeeper tree and the problem seems to be unchanged.

The attached patch is a partial backout of bitkeeper rev.  1.87 of
fs/exec.c.  I guess the original change was a simple mistake.
(free_arg_pages() is a NOP when CONFIG_MMU is defined).
parent ab49402d
......@@ -1085,6 +1085,7 @@ int do_execve(char * filename,
struct linux_binprm bprm;
struct file *file;
int retval;
int i;
sched_balance_exec();
......@@ -1153,7 +1154,11 @@ int do_execve(char * filename,
out:
/* Something went wrong, return the inode and free the argument pages*/
free_arg_pages(&bprm);
for (i = 0 ; i < MAX_ARG_PAGES ; i++) {
struct page * page = bprm.page[i];
if (page)
__free_page(page);
}
if (bprm.security)
security_bprm_free(&bprm);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment