diff options
Diffstat (limited to 'fs/binfmt_elf.c')
| -rw-r--r-- | fs/binfmt_elf.c | 6 | 
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index f8c7f26f1fbb..9e11e6f13e83 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c @@ -1116,11 +1116,11 @@ out_free_interp:  			 * independently randomized mmap region (0 load_bias  			 * without MAP_FIXED nor MAP_FIXED_NOREPLACE).  			 */ -			if (interpreter) { +			alignment = maximum_alignment(elf_phdata, elf_ex->e_phnum); +			if (interpreter || alignment > ELF_MIN_ALIGN) {  				load_bias = ELF_ET_DYN_BASE;  				if (current->flags & PF_RANDOMIZE)  					load_bias += arch_mmap_rnd(); -				alignment = maximum_alignment(elf_phdata, elf_ex->e_phnum);  				if (alignment)  					load_bias &= ~(alignment - 1);  				elf_flags |= MAP_FIXED_NOREPLACE; @@ -1585,7 +1585,7 @@ static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p,  	SET_UID(psinfo->pr_uid, from_kuid_munged(cred->user_ns, cred->uid));  	SET_GID(psinfo->pr_gid, from_kgid_munged(cred->user_ns, cred->gid));  	rcu_read_unlock(); -	strncpy(psinfo->pr_fname, p->comm, sizeof(psinfo->pr_fname)); +	get_task_comm(psinfo->pr_fname, p);  	return 0;  }  |