diff options
Diffstat (limited to 'fs/binfmt_elf.c')
| -rw-r--r-- | fs/binfmt_elf.c | 7 | 
1 files changed, 3 insertions, 4 deletions
| diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index 0ac456b52bdd..efae2fb0930a 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c @@ -1259,9 +1259,8 @@ static int load_elf_library(struct file *file)  		goto out_free_ph;  	} -	len = ELF_PAGESTART(eppnt->p_filesz + eppnt->p_vaddr + -			    ELF_MIN_ALIGN - 1); -	bss = eppnt->p_memsz + eppnt->p_vaddr; +	len = ELF_PAGEALIGN(eppnt->p_filesz + eppnt->p_vaddr); +	bss = ELF_PAGEALIGN(eppnt->p_memsz + eppnt->p_vaddr);  	if (bss > len) {  		error = vm_brk(len, bss - len);  		if (error) @@ -1752,7 +1751,7 @@ static int fill_thread_core_info(struct elf_thread_core_info *t,  		const struct user_regset *regset = &view->regsets[i];  		do_thread_regset_writeback(t->task, regset);  		if (regset->core_note_type && regset->get && -		    (!regset->active || regset->active(t->task, regset))) { +		    (!regset->active || regset->active(t->task, regset) > 0)) {  			int ret;  			size_t size = regset_size(t->task, regset);  			void *data = kmalloc(size, GFP_KERNEL); |