Browse Source

Merge pull request #4732 from zen3ger/os2-process-incorrect-working-dir

os/os2: Properly update CWD on Linux when using _process_start()
Laytan 7 months ago
parent
commit
68653081be
1 changed files with 5 additions and 0 deletions
  1. 5 0
      core/os/os2/process_linux.odin

+ 5 - 0
core/os/os2/process_linux.odin

@@ -547,6 +547,11 @@ _process_start :: proc(desc: Process_Desc) -> (process: Process, err: Error) {
 		if _, errno = linux.dup2(stderr_fd, STDERR); errno != .NONE {
 			write_errno_to_parent_and_abort(child_pipe_fds[WRITE], errno)
 		}
+		if dir_fd != linux.AT_FDCWD {
+			if errno = linux.fchdir(dir_fd); errno != .NONE {
+				write_errno_to_parent_and_abort(child_pipe_fds[WRITE], errno)
+			}
+		}
 
 		errno = linux.execveat(dir_fd, exe_path, &cargs[0], env)
 		assert(errno != nil)