New upstream release
This commit is contained in:
		
							parent
							
								
									d3c559c258
								
							
						
					
					
						commit
						9f855ab0c4
					
				| @ -1,63 +0,0 @@ | ||||
| diff --git a/src/systemctl.c b/src/systemctl.c
 | ||||
| index 8cdc01a..c09b31d 100644
 | ||||
| --- a/src/systemctl.c
 | ||||
| +++ b/src/systemctl.c
 | ||||
| @@ -141,6 +141,9 @@ static void spawn_ask_password_agent(void) {
 | ||||
|          if (!arg_ask_password) | ||||
|                  return; | ||||
| 
 | ||||
| +        if (arg_user)
 | ||||
| +                return;
 | ||||
| +
 | ||||
|          parent = getpid(); | ||||
| 
 | ||||
|          /* Spawns a temporary TTY agent, making sure it goes away when | ||||
| @@ -151,13 +154,15 @@ static void spawn_ask_password_agent(void) {
 | ||||
| 
 | ||||
|          if (child == 0) { | ||||
|                  /* In the child */ | ||||
| -
 | ||||
|                  const char * const args[] = { | ||||
|                          SYSTEMD_TTY_ASK_PASSWORD_AGENT_BINARY_PATH, | ||||
|                          "--watch", | ||||
|                          NULL | ||||
|                  }; | ||||
| 
 | ||||
| +                int fd;
 | ||||
| +
 | ||||
| +                /* Make sure the agent goes away when the parent dies */
 | ||||
|                  if (prctl(PR_SET_PDEATHSIG, SIGTERM) < 0) | ||||
|                          _exit(EXIT_FAILURE); | ||||
| 
 | ||||
| @@ -166,6 +171,31 @@ static void spawn_ask_password_agent(void) {
 | ||||
|                  if (getppid() != parent) | ||||
|                          _exit(EXIT_SUCCESS); | ||||
| 
 | ||||
| +                /* Don't leak fds to the agent */
 | ||||
| +                close_all_fds(NULL, 0);
 | ||||
| +
 | ||||
| +                /* Detach from stdin/stdout/stderr. and reopen
 | ||||
| +                 * /dev/tty for them. This is important to ensure that
 | ||||
| +                 * when systemctl is started via popen() or a similar
 | ||||
| +                 * call that expects to read EOF we actually do
 | ||||
| +                 * generate EOF and not delay this indefinitely by
 | ||||
| +                 * because we keep an unused copy of stdin around. */
 | ||||
| +                if ((fd = open("/dev/tty", O_RDWR)) < 0) {
 | ||||
| +                        log_error("Failed to open /dev/tty: %m");
 | ||||
| +                        _exit(EXIT_FAILURE);
 | ||||
| +                }
 | ||||
| +
 | ||||
| +                close(STDIN_FILENO);
 | ||||
| +                close(STDOUT_FILENO);
 | ||||
| +                close(STDERR_FILENO);
 | ||||
| +
 | ||||
| +                dup2(fd, STDIN_FILENO);
 | ||||
| +                dup2(fd, STDOUT_FILENO);
 | ||||
| +                dup2(fd, STDERR_FILENO);
 | ||||
| +
 | ||||
| +                if (fd > 2)
 | ||||
| +                        close(fd);
 | ||||
| +
 | ||||
|                  execv(args[0], (char **) args); | ||||
|                  _exit(EXIT_FAILURE); | ||||
|          } | ||||
							
								
								
									
										10
									
								
								systemd.spec
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								systemd.spec
									
									
									
									
									
								
							| @ -1,8 +1,8 @@ | ||||
| Name:           systemd | ||||
| Url:            http://www.freedesktop.org/wiki/Software/systemd | ||||
| BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) | ||||
| Version:        17 | ||||
| Release:        6%{?dist} | ||||
| Version:        18 | ||||
| Release:        1%{?dist} | ||||
| License:        GPLv2+ | ||||
| Group:          System Environment/Base | ||||
| Summary:        A System and Service Manager | ||||
| @ -44,7 +44,6 @@ Obsoletes:      upstart-sysvinit < 0.6.5-11 | ||||
| Conflicts:      upstart-sysvinit | ||||
| Obsoletes:      readahead < 1:1.5.7-3 | ||||
| Provides:       readahead = 1:1.5.7-3 | ||||
| Patch0:         fix-popen.patch | ||||
| 
 | ||||
| %description | ||||
| systemd is a system and service manager for Linux, compatible with | ||||
| @ -78,7 +77,6 @@ Graphical front-end for systemd. | ||||
| 
 | ||||
| %prep | ||||
| %setup -q | ||||
| %patch0 -p1 | ||||
| 
 | ||||
| %build | ||||
| %configure --with-rootdir= --with-distro=fedora | ||||
| @ -220,6 +218,7 @@ fi | ||||
| %dir /lib/systemd | ||||
| /lib/systemd/system | ||||
| /bin/systemctl | ||||
| /bin/systemd-tmpfiles | ||||
| %{_sysconfdir}/bash_completion.d/systemctl-bash-completion.sh | ||||
| %{_sysconfdir}/rpm/macros.systemd | ||||
| %{_mandir}/man1/systemctl.* | ||||
| @ -241,6 +240,9 @@ fi | ||||
| %{_mandir}/man1/systemadm.* | ||||
| 
 | ||||
| %changelog | ||||
| * Wed Feb 16 2011 Lennart Poettering <lpoetter@redhat.com> - 18-1 | ||||
| - New upstream release | ||||
| 
 | ||||
| * Mon Feb 14 2011 Bill Nottingham <notting@redhat.com> - 17-6 | ||||
| - bump upstart obsoletes (#676815) | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user