summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2021-11-03 15:56:09 +0100
committerLennart Poettering <lennart@poettering.net>2021-11-03 16:36:09 +0100
commit8f03de5323c86f2e7ce0884e169e2c7180938fbd (patch)
tree83fcdd15e58c113537ce59d1d505030ca9475e6f /src
parent883946f0d2a8d8086749636b729719c22c0c0dba (diff)
downloadsystemd-8f03de5323c86f2e7ce0884e169e2c7180938fbd.tar.gz
tree-wide: port various places to use TAKE_PID()
Diffstat (limited to 'src')
-rw-r--r--src/core/execute.c3
-rw-r--r--src/core/mount.c3
-rw-r--r--src/core/service.c6
-rw-r--r--src/core/socket.c3
-rw-r--r--src/core/swap.c3
-rw-r--r--src/import/export-tar.c3
-rw-r--r--src/import/import-tar.c3
-rw-r--r--src/import/pull-common.c3
-rw-r--r--src/import/pull-tar.c3
-rw-r--r--src/libsystemd/sd-bus/sd-bus.c8
-rw-r--r--src/nspawn/nspawn.c3
-rw-r--r--src/shared/pager.c2
-rw-r--r--src/shared/spawn-ask-password-agent.c4
-rw-r--r--src/shared/spawn-polkit-agent.c4
14 files changed, 18 insertions, 33 deletions
diff --git a/src/core/execute.c b/src/core/execute.c
index bf4a66e3bd..d8bbc694b4 100644
--- a/src/core/execute.c
+++ b/src/core/execute.c
@@ -2248,8 +2248,7 @@ static int setup_private_users(uid_t ouid, gid_t ogid, uid_t uid, gid_t gid) {
if (n != 0) /* on success we should have read 0 bytes */
return -EIO;
- r = wait_for_terminate_and_check("(sd-userns)", pid, 0);
- pid = 0;
+ r = wait_for_terminate_and_check("(sd-userns)", TAKE_PID(pid), 0);
if (r < 0)
return r;
if (r != EXIT_SUCCESS) /* If something strange happened with the child, let's consider this fatal, too */
diff --git a/src/core/mount.c b/src/core/mount.c
index c4d7f981c6..321c7986b3 100644
--- a/src/core/mount.c
+++ b/src/core/mount.c
@@ -236,8 +236,7 @@ static void mount_unwatch_control_pid(Mount *m) {
if (m->control_pid <= 0)
return;
- unit_unwatch_pid(UNIT(m), m->control_pid);
- m->control_pid = 0;
+ unit_unwatch_pid(UNIT(m), TAKE_PID(m->control_pid));
}
static void mount_parameters_done(MountParameters *p) {
diff --git a/src/core/service.c b/src/core/service.c
index 16d9456719..4b99311e5a 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -130,8 +130,7 @@ static void service_unwatch_control_pid(Service *s) {
if (s->control_pid <= 0)
return;
- unit_unwatch_pid(UNIT(s), s->control_pid);
- s->control_pid = 0;
+ unit_unwatch_pid(UNIT(s), TAKE_PID(s->control_pid));
}
static void service_unwatch_main_pid(Service *s) {
@@ -140,8 +139,7 @@ static void service_unwatch_main_pid(Service *s) {
if (s->main_pid <= 0)
return;
- unit_unwatch_pid(UNIT(s), s->main_pid);
- s->main_pid = 0;
+ unit_unwatch_pid(UNIT(s), TAKE_PID(s->main_pid));
}
static void service_unwatch_pid_file(Service *s) {
diff --git a/src/core/socket.c b/src/core/socket.c
index 81178e3de2..ba3df32997 100644
--- a/src/core/socket.c
+++ b/src/core/socket.c
@@ -109,8 +109,7 @@ static void socket_unwatch_control_pid(Socket *s) {
if (s->control_pid <= 0)
return;
- unit_unwatch_pid(UNIT(s), s->control_pid);
- s->control_pid = 0;
+ unit_unwatch_pid(UNIT(s), TAKE_PID(s->control_pid));
}
static void socket_cleanup_fd_list(SocketPort *p) {
diff --git a/src/core/swap.c b/src/core/swap.c
index 29c63118ac..de72ac9232 100644
--- a/src/core/swap.c
+++ b/src/core/swap.c
@@ -155,8 +155,7 @@ static void swap_unwatch_control_pid(Swap *s) {
if (s->control_pid <= 0)
return;
- unit_unwatch_pid(UNIT(s), s->control_pid);
- s->control_pid = 0;
+ unit_unwatch_pid(UNIT(s), TAKE_PID(s->control_pid));
}
static void swap_done(Unit *u) {
diff --git a/src/import/export-tar.c b/src/import/export-tar.c
index b734c3004a..6dc2e01733 100644
--- a/src/import/export-tar.c
+++ b/src/import/export-tar.c
@@ -147,8 +147,7 @@ static int tar_export_finish(TarExport *e) {
assert(e->tar_fd >= 0);
if (e->tar_pid > 0) {
- r = wait_for_terminate_and_check("tar", e->tar_pid, WAIT_LOG);
- e->tar_pid = 0;
+ r = wait_for_terminate_and_check("tar", TAKE_PID(e->tar_pid), WAIT_LOG);
if (r < 0)
return r;
if (r != EXIT_SUCCESS)
diff --git a/src/import/import-tar.c b/src/import/import-tar.c
index bb67862d62..c8916da11a 100644
--- a/src/import/import-tar.c
+++ b/src/import/import-tar.c
@@ -167,8 +167,7 @@ static int tar_import_finish(TarImport *i) {
i->tar_fd = safe_close(i->tar_fd);
if (i->tar_pid > 0) {
- r = wait_for_terminate_and_check("tar", i->tar_pid, WAIT_LOG);
- i->tar_pid = 0;
+ r = wait_for_terminate_and_check("tar", TAKE_PID(i->tar_pid), WAIT_LOG);
if (r < 0)
return r;
if (r != EXIT_SUCCESS)
diff --git a/src/import/pull-common.c b/src/import/pull-common.c
index 39067933b5..adb366222d 100644
--- a/src/import/pull-common.c
+++ b/src/import/pull-common.c
@@ -482,8 +482,7 @@ static int verify_gpg(
gpg_pipe[1] = safe_close(gpg_pipe[1]);
- r = wait_for_terminate_and_check("gpg", pid, WAIT_LOG_ABNORMAL);
- pid = 0;
+ r = wait_for_terminate_and_check("gpg", TAKE_PID(pid), WAIT_LOG_ABNORMAL);
if (r < 0)
goto finish;
if (r != EXIT_SUCCESS)
diff --git a/src/import/pull-tar.c b/src/import/pull-tar.c
index 06d336bca9..bce49cf4e5 100644
--- a/src/import/pull-tar.c
+++ b/src/import/pull-tar.c
@@ -369,8 +369,7 @@ static void tar_pull_job_on_finished(PullJob *j) {
pull_job_close_disk_fd(i->settings_job);
if (i->tar_pid > 0) {
- r = wait_for_terminate_and_check("tar", i->tar_pid, WAIT_LOG);
- i->tar_pid = 0;
+ r = wait_for_terminate_and_check("tar", TAKE_PID(i->tar_pid), WAIT_LOG);
if (r < 0)
goto finish;
if (r != EXIT_SUCCESS) {
diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c
index 96d5b9605e..9ebf7b03c0 100644
--- a/src/libsystemd/sd-bus/sd-bus.c
+++ b/src/libsystemd/sd-bus/sd-bus.c
@@ -1082,10 +1082,10 @@ static int bus_parse_next_address(sd_bus *b) {
}
static void bus_kill_exec(sd_bus *bus) {
- if (pid_is_valid(bus->busexec_pid) > 0) {
- sigterm_wait(bus->busexec_pid);
- bus->busexec_pid = 0;
- }
+ if (!pid_is_valid(bus->busexec_pid))
+ return;
+
+ sigterm_wait(TAKE_PID(bus->busexec_pid));
}
static int bus_start_address(sd_bus *b) {
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
index 8c0bc99d72..09c79b22e7 100644
--- a/src/nspawn/nspawn.c
+++ b/src/nspawn/nspawn.c
@@ -5248,8 +5248,7 @@ static int run_container(
}
}
- r = wait_for_container(*pid, &container_status);
- *pid = 0;
+ r = wait_for_container(TAKE_PID(*pid), &container_status);
/* Tell machined that we are gone. */
if (bus)
diff --git a/src/shared/pager.c b/src/shared/pager.c
index 90c347f8c0..5418065333 100644
--- a/src/shared/pager.c
+++ b/src/shared/pager.c
@@ -286,7 +286,7 @@ void pager_close(void) {
stdout_redirected = stderr_redirected = false;
(void) kill(pager_pid, SIGCONT);
- (void) wait_for_terminate(pager_pid, NULL);
+ (void) wait_for_terminate(TAKE_PID(pager_pid), NULL);
pager_pid = 0;
}
diff --git a/src/shared/spawn-ask-password-agent.c b/src/shared/spawn-ask-password-agent.c
index 38fab21203..902d7543a5 100644
--- a/src/shared/spawn-ask-password-agent.c
+++ b/src/shared/spawn-ask-password-agent.c
@@ -43,9 +43,7 @@ void ask_password_agent_close(void) {
return;
/* Inform agent that we are done */
- (void) kill_and_sigcont(agent_pid, SIGTERM);
- (void) wait_for_terminate(agent_pid, NULL);
- agent_pid = 0;
+ sigterm_wait(TAKE_PID(agent_pid));
}
int ask_password_agent_open_if_enabled(BusTransport transport, bool ask_password) {
diff --git a/src/shared/spawn-polkit-agent.c b/src/shared/spawn-polkit-agent.c
index cd0b4601da..7fa7508178 100644
--- a/src/shared/spawn-polkit-agent.c
+++ b/src/shared/spawn-polkit-agent.c
@@ -69,9 +69,7 @@ void polkit_agent_close(void) {
return;
/* Inform agent that we are done */
- (void) kill_and_sigcont(agent_pid, SIGTERM);
- (void) wait_for_terminate(agent_pid, NULL);
- agent_pid = 0;
+ sigterm_wait(TAKE_PID(agent_pid));
}
#else