]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - fs/binfmt_elf.c
Invalid return value of execve() resulting in oopses
[mirror_ubuntu-artful-kernel.git] / fs / binfmt_elf.c
index 67d9b3148c06b62a05989e0914ba42c385186c2c..fa8ea33ab0be1ef56ff78b5908a691676d815e27 100644 (file)
@@ -871,6 +871,8 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
                                elf_prot, elf_flags);
                if (BAD_ADDR(error)) {
                        send_sig(SIGKILL, current, 0);
+                       retval = IS_ERR((void *)error) ?
+                               PTR_ERR((void*)error) : -EINVAL;
                        goto out_free_dentry;
                }
 
@@ -900,6 +902,7 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
                    TASK_SIZE - elf_ppnt->p_memsz < k) {
                        /* set_brk can never work. Avoid overflows. */
                        send_sig(SIGKILL, current, 0);
+                       retval = -EINVAL;
                        goto out_free_dentry;
                }