0001-src-exec_ptrace-fix-build-without-precess_vm_readv.patch 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. From 5bbfaa8e68b5ee6f27d4fbfa3c4e789341724f9c Mon Sep 17 00:00:00 2001
  2. From: "Yann E. MORIN" <yann.morin.1998@free.fr>
  3. Date: Sat, 17 Feb 2024 17:52:45 +0100
  4. Subject: [PATCH] src/exec_ptrace: fix build without precess_vm_readv()
  5. Commit 32f4b98f6b4a (sudo frontend: silence most -Wconversion warnings.)
  6. broke the build on C libraries that miss process_vm_readv(), like
  7. uClibc-ng.
  8. Indeed, the ssize_t nwritten is declared guarded by HAVE_PROCESS_VM_READV,
  9. but is then re-assigned and used a few lines below, outside any guard.
  10. Fix that by always declaring the object, as it is always needed.
  11. Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
  12. Upstream: https://github.com/sudo-project/sudo/commit/5bbfaa8e68b5ee6f27d4fbfa3c4e789341724f9c
  13. ---
  14. src/exec_ptrace.c | 3 ++-
  15. 1 file changed, 2 insertions(+), 1 deletion(-)
  16. diff --git a/src/exec_ptrace.c b/src/exec_ptrace.c
  17. index 9dd36c275..3d44b82e2 100644
  18. --- a/src/exec_ptrace.c
  19. +++ b/src/exec_ptrace.c
  20. @@ -878,11 +878,12 @@ ptrace_write_vec(pid_t pid, struct sudo_ptrace_regs *regs, char **vec,
  21. unsigned long addr, unsigned long strtab)
  22. {
  23. const unsigned long strtab0 = strtab;
  24. + ssize_t nwritten;
  25. size_t i;
  26. debug_decl(ptrace_write_vec, SUDO_DEBUG_EXEC);
  27. #ifdef HAVE_PROCESS_VM_READV
  28. - ssize_t nwritten = ptrace_writev_vec(pid, regs, vec, addr, strtab);
  29. + nwritten = ptrace_writev_vec(pid, regs, vec, addr, strtab);
  30. if (nwritten != -1 || errno != ENOSYS)
  31. debug_return_ssize_t(nwritten);
  32. #endif /* HAVE_PROCESS_VM_READV */
  33. --
  34. 2.43.0