projects
/
deliverable
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
staging/android: remove 'destroyed' member from struct sync_timeline
[deliverable/linux.git]
/
fs
/
binfmt_elf.c
diff --git
a/fs/binfmt_elf.c
b/fs/binfmt_elf.c
index 56224ffa94d2c62eed3d3d945158c723d4ddffc5..e158b22ef32f16d2fcf61c29fbf6d15a65581c1e 100644
(file)
--- a/
fs/binfmt_elf.c
+++ b/
fs/binfmt_elf.c
@@
-96,10
+96,9
@@
static int set_brk(unsigned long start, unsigned long end)
start = ELF_PAGEALIGN(start);
end = ELF_PAGEALIGN(end);
if (end > start) {
start = ELF_PAGEALIGN(start);
end = ELF_PAGEALIGN(end);
if (end > start) {
- unsigned long addr;
- addr = vm_brk(start, end - start);
- if (BAD_ADDR(addr))
- return addr;
+ int error = vm_brk(start, end - start);
+ if (error)
+ return error;
}
current->mm->start_brk = current->mm->brk = end;
return 0;
}
current->mm->start_brk = current->mm->brk = end;
return 0;
@@
-629,7
+628,7
@@
static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
/* Map the last of the bss segment */
error = vm_brk(elf_bss, last_bss - elf_bss);
/* Map the last of the bss segment */
error = vm_brk(elf_bss, last_bss - elf_bss);
- if (
BAD_ADDR(error)
)
+ if (
error
)
goto out;
}
goto out;
}
@@
-1176,8
+1175,11
@@
static int load_elf_library(struct file *file)
len = ELF_PAGESTART(eppnt->p_filesz + eppnt->p_vaddr +
ELF_MIN_ALIGN - 1);
bss = eppnt->p_memsz + eppnt->p_vaddr;
len = ELF_PAGESTART(eppnt->p_filesz + eppnt->p_vaddr +
ELF_MIN_ALIGN - 1);
bss = eppnt->p_memsz + eppnt->p_vaddr;
- if (bss > len)
- vm_brk(len, bss - len);
+ if (bss > len) {
+ error = vm_brk(len, bss - len);
+ if (error)
+ goto out_free_ph;
+ }
error = 0;
out_free_ph:
error = 0;
out_free_ph:
This page took
0.026121 seconds
and
5
git commands to generate.