Merge to Fedora kernel-2.6.7-1.492
[linux-2.6.git] / fs / exec.c
index 2902dda..d386912 100644 (file)
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -439,6 +439,7 @@ int setup_arg_pages(struct linux_binprm *bprm, int executable_stack)
                        mpnt->vm_flags = VM_STACK_FLAGS & ~VM_EXEC;
                else
                        mpnt->vm_flags = VM_STACK_FLAGS;
+               mpnt->vm_flags |= mm->def_flags;
                mpnt->vm_page_prot = protection_map[mpnt->vm_flags & 0x7];
                insert_vm_struct(mm, mpnt);
                // mm->total_vm = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT;
@@ -1052,6 +1053,7 @@ int search_binary_handler(struct linux_binprm *bprm,struct pt_regs *regs)
                                        fput(bprm->file);
                                bprm->file = NULL;
                                current->did_exec = 1;
+                               ckrm_cb_exec(bprm->filename);
                                return retval;
                        }
                        read_lock(&binfmt_lock);
@@ -1111,6 +1113,7 @@ int do_execve(char * filename,
        bprm.filename = filename;
        bprm.interp = filename;
        bprm.interp_flags = 0;
+       bprm.interp_data = 0;
        bprm.sh_bang = 0;
        bprm.loader = 0;
        bprm.exec = 0;
@@ -1157,8 +1160,6 @@ int do_execve(char * filename,
        if (retval >= 0) {
                free_arg_pages(&bprm);
 
-               ckrm_cb_exec(filename);
-
                /* execve success */
                security_bprm_free(&bprm);
                return retval;