Message ID | 1468358862-11799-8-git-send-email-nicolas.pitre@linaro.org |
---|---|
State | Superseded |
Headers | show |
diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index c85f8f1239..e981e66bb5 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c @@ -803,10 +803,11 @@ static int load_flat_file(struct linux_binprm * bprm, flush_icache_range(start_code, end_code); /* zero the BSS, BRK and stack areas */ - memset((void*)(datapos + data_len), 0, bss_len + + if (clear_user((void __user *)(datapos + data_len), bss_len + (memp + memp_size - stack_len - /* end brk */ libinfo->lib_list[id].start_brk) + /* start brk */ - stack_len); + stack_len)) + return -EFAULT; return 0; err:
This is needed on systems with a MMU. Signed-off-by: Nicolas Pitre <nico@linaro.org> --- fs/binfmt_flat.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) -- 2.7.4