mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 00:56:10 +00:00 
			
		
		
		
	Merge branch 'obsd-master'
Conflicts: cmd-pipe-pane.c proc.c tmux.c window.c
This commit is contained in:
		
							
								
								
									
										11
									
								
								job.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								job.c
									
									
									
									
									
								
							@@ -50,6 +50,7 @@ job_run(const char *cmd, struct session *s, const char *cwd,
 | 
			
		||||
	pid_t		 pid;
 | 
			
		||||
	int		 nullfd, out[2];
 | 
			
		||||
	const char	*home;
 | 
			
		||||
	sigset_t	 set, oldset;
 | 
			
		||||
 | 
			
		||||
	if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, out) != 0)
 | 
			
		||||
		return (NULL);
 | 
			
		||||
@@ -60,14 +61,18 @@ job_run(const char *cmd, struct session *s, const char *cwd,
 | 
			
		||||
	 */
 | 
			
		||||
	env = environ_for_session(s, !cfg_finished);
 | 
			
		||||
 | 
			
		||||
	sigfillset(&set);
 | 
			
		||||
	sigprocmask(SIG_BLOCK, &set, &oldset);
 | 
			
		||||
	switch (pid = fork()) {
 | 
			
		||||
	case -1:
 | 
			
		||||
		sigprocmask(SIG_SETMASK, &oldset, NULL);
 | 
			
		||||
		environ_free(env);
 | 
			
		||||
		close(out[0]);
 | 
			
		||||
		close(out[1]);
 | 
			
		||||
		return (NULL);
 | 
			
		||||
	case 0:		/* child */
 | 
			
		||||
		clear_signals(1);
 | 
			
		||||
	case 0:
 | 
			
		||||
		proc_clear_signals(server_proc);
 | 
			
		||||
		sigprocmask(SIG_SETMASK, &oldset, NULL);
 | 
			
		||||
 | 
			
		||||
		if (cwd == NULL || chdir(cwd) != 0) {
 | 
			
		||||
			if ((home = find_home()) == NULL || chdir(home) != 0)
 | 
			
		||||
@@ -99,7 +104,7 @@ job_run(const char *cmd, struct session *s, const char *cwd,
 | 
			
		||||
		fatal("execl failed");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* parent */
 | 
			
		||||
	sigprocmask(SIG_SETMASK, &oldset, NULL);
 | 
			
		||||
	environ_free(env);
 | 
			
		||||
	close(out[1]);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user