projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[PATCH] ppc64: update defconfigs
[powerpc.git]
/
fs
/
binfmt_elf.c
diff --git
a/fs/binfmt_elf.c
b/fs/binfmt_elf.c
index
76ec9d8
..
7976a23
100644
(file)
--- a/
fs/binfmt_elf.c
+++ b/
fs/binfmt_elf.c
@@
-251,7
+251,7
@@
create_elf_tables(struct linux_binprm *bprm, struct elfhdr * exec,
}
/* Populate argv and envp */
}
/* Populate argv and envp */
- p = current->mm->arg_start;
+ p = current->mm->arg_
end = current->mm->arg_
start;
while (argc-- > 0) {
size_t len;
__put_user((elf_addr_t)p, argv++);
while (argc-- > 0) {
size_t len;
__put_user((elf_addr_t)p, argv++);
@@
-775,6
+775,7
@@
static int load_elf_binary(struct linux_binprm * bprm, struct pt_regs * regs)
change some of these later */
set_mm_counter(current->mm, rss, 0);
current->mm->free_area_cache = current->mm->mmap_base;
change some of these later */
set_mm_counter(current->mm, rss, 0);
current->mm->free_area_cache = current->mm->mmap_base;
+ current->mm->cached_hole_size = 0;
retval = setup_arg_pages(bprm, randomize_stack_top(STACK_TOP),
executable_stack);
if (retval < 0) {
retval = setup_arg_pages(bprm, randomize_stack_top(STACK_TOP),
executable_stack);
if (retval < 0) {
@@
-782,14
+783,6
@@
static int load_elf_binary(struct linux_binprm * bprm, struct pt_regs * regs)
goto out_free_dentry;
}
goto out_free_dentry;
}
-#ifdef ARCH_HAS_SETUP_ADDITIONAL_PAGES
- retval = arch_setup_additional_pages(bprm, executable_stack);
- if (retval < 0) {
- send_sig(SIGKILL, current, 0);
- goto out_free_dentry;
- }
-#endif /* ARCH_HAS_SETUP_ADDITIONAL_PAGES */
-
current->mm->start_stack = bprm->p;
/* Now we do a little grungy work by mmaping the ELF image into
current->mm->start_stack = bprm->p;
/* Now we do a little grungy work by mmaping the ELF image into
@@
-949,6
+942,14
@@
static int load_elf_binary(struct linux_binprm * bprm, struct pt_regs * regs)
set_binfmt(&elf_format);
set_binfmt(&elf_format);
+#ifdef ARCH_HAS_SETUP_ADDITIONAL_PAGES
+ retval = arch_setup_additional_pages(bprm, executable_stack);
+ if (retval < 0) {
+ send_sig(SIGKILL, current, 0);
+ goto out;
+ }
+#endif /* ARCH_HAS_SETUP_ADDITIONAL_PAGES */
+
compute_creds(bprm);
current->flags &= ~PF_FORKNOEXEC;
create_elf_tables(bprm, &loc->elf_ex, (interpreter_type == INTERPRETER_AOUT),
compute_creds(bprm);
current->flags &= ~PF_FORKNOEXEC;
create_elf_tables(bprm, &loc->elf_ex, (interpreter_type == INTERPRETER_AOUT),
@@
-1125,7
+1126,7
@@
static int dump_write(struct file *file, const void *addr, int nr)
return file->f_op->write(file, addr, nr, &file->f_pos) == nr;
}
return file->f_op->write(file, addr, nr, &file->f_pos) == nr;
}
-static int dump_seek(struct file *file, off_t off)
+static int dump_seek(struct file *file,
l
off_t off)
{
if (file->f_op->llseek) {
if (file->f_op->llseek(file, off, 0) != off)
{
if (file->f_op->llseek) {
if (file->f_op->llseek(file, off, 0) != off)
@@
-1301,7
+1302,7
@@
static void fill_prstatus(struct elf_prstatus *prstatus,
static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p,
struct mm_struct *mm)
{
static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p,
struct mm_struct *mm)
{
- int i, len;
+
unsigned
int i, len;
/* first copy the parameters from user space */
memset(psinfo, 0, sizeof(struct elf_prpsinfo));
/* first copy the parameters from user space */
memset(psinfo, 0, sizeof(struct elf_prpsinfo));