|
@@ -1176,8 +1176,11 @@ static int load_elf_library(struct file *file)
|
|
len = ELF_PAGESTART(eppnt->p_filesz + eppnt->p_vaddr +
|
|
len = ELF_PAGESTART(eppnt->p_filesz + eppnt->p_vaddr +
|
|
ELF_MIN_ALIGN - 1);
|
|
ELF_MIN_ALIGN - 1);
|
|
bss = eppnt->p_memsz + eppnt->p_vaddr;
|
|
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 (BAD_ADDR(error))
|
|
|
|
+ goto out_free_ph;
|
|
|
|
+ }
|
|
error = 0;
|
|
error = 0;
|
|
|
|
|
|
out_free_ph:
|
|
out_free_ph:
|