X-Git-Url: https://git.tld-linux.org/?p=packages%2Fqemu.git;a=blobdiff_plain;f=qemu-execve.patch;fp=qemu-execve.patch;h=0000000000000000000000000000000000000000;hp=03b09310dd84a23dc390d916296cd9216c368b93;hb=9b272b11df3351f18b75ea14155693543a5b4108;hpb=a7e785922160fb6314b1a11d5e68ecc15f06b3ec diff --git a/qemu-execve.patch b/qemu-execve.patch deleted file mode 100644 index 03b0931..0000000 --- a/qemu-execve.patch +++ /dev/null @@ -1,54 +0,0 @@ -diff -ur qemu-8.0.3.orig/linux-user/syscall.c qemu-8.0.3/linux-user/syscall.c ---- qemu-8.0.3.orig/linux-user/syscall.c 2023-07-22 14:27:06.999503109 +0200 -+++ qemu-8.0.3/linux-user/syscall.c 2023-07-22 15:21:31.161543522 +0200 -@@ -659,6 +659,7 @@ - #endif - safe_syscall5(int, waitid, idtype_t, idtype, id_t, id, siginfo_t *, infop, \ - int, options, struct rusage *, rusage) -+safe_syscall3(int, execve, const char *, filename, char **, argv, char **, envp) - safe_syscall5(int, execveat, int, dirfd, const char *, filename, - char **, argv, char **, envp, int, flags) - #if defined(TARGET_NR_select) || defined(TARGET_NR__newselect) || \ -@@ -8388,9 +8389,9 @@ - return safe_openat(dirfd, path(pathname), flags, mode); - } - --static int do_execveat(CPUArchState *cpu_env, int dirfd, -- abi_long pathname, abi_long guest_argp, -- abi_long guest_envp, int flags) -+static int do_execv(CPUArchState *cpu_env, int dirfd, -+ abi_long pathname, abi_long guest_argp, -+ abi_long guest_envp, int flags, bool is_execveat) - { - int ret; - char **argp, **envp; -@@ -8469,11 +8470,14 @@ - goto execve_efault; - } - -+ const char *exe = p; - if (is_proc_myself(p, "exe")) { -- ret = get_errno(safe_execveat(dirfd, exec_path, argp, envp, flags)); -- } else { -- ret = get_errno(safe_execveat(dirfd, p, argp, envp, flags)); -+ exe = exec_path; - } -+ ret = is_execveat -+ ? safe_execveat(dirfd, exe, argp, envp, flags) -+ : safe_execve(exe, argp, envp); -+ ret = get_errno(ret); - - unlock_user(p, pathname, 0); - -@@ -9012,9 +9016,9 @@ - return ret; - #endif - case TARGET_NR_execveat: -- return do_execveat(cpu_env, arg1, arg2, arg3, arg4, arg5); -+ return do_execv(cpu_env, arg1, arg2, arg3, arg4, arg5, true); - case TARGET_NR_execve: -- return do_execveat(cpu_env, AT_FDCWD, arg1, arg2, arg3, 0); -+ return do_execv(cpu_env, AT_FDCWD, arg1, arg2, arg3, 0, false); - case TARGET_NR_chdir: - if (!(p = lock_user_string(arg1))) - return -TARGET_EFAULT;