summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <smcv@collabora.com>2022-02-21 16:02:13 +0000
committerSimon McVittie <smcv@collabora.com>2022-02-25 14:57:18 +0000
commitc32b5cc4ed4ec04cd8554098b67cdff640edf927 (patch)
tree62f28229f9e1c0295c629240292e84845849d109
parente7a4123d6e4096a22a6b32f9a84747ab95590577 (diff)
downloaddbus-c32b5cc4ed4ec04cd8554098b67cdff640edf927.tar.gz
spawn-unix: Don't log an error if unable to reset Linux OOM score
We cannot safely log between fork() and exec() because it isn't an async-signal-safe operation (in particular it might allocate memory). We also don't want to treat a failure here as a real problem, because it might legitimately not work: in a system dbus-daemon that has dropped privileges from root, the pseudo-file representing this process parameter remains owned by root and cannot be altered by the unprivileged user. For the main use-case for this operation, the system dbus-daemon, we have another opportunity to do this in the dbus-daemon-launch-helper (see the previous commit). Signed-off-by: Simon McVittie <smcv@collabora.com> (cherry picked from commit 7ee72a27957be5d3436beaa02ccd01b9ce042962)
-rw-r--r--dbus/dbus-spawn.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/dbus/dbus-spawn.c b/dbus/dbus-spawn.c
index b4aff676..0459dc21 100644
--- a/dbus/dbus-spawn.c
+++ b/dbus/dbus-spawn.c
@@ -1397,13 +1397,11 @@ _dbus_spawn_async_with_babysitter (DBusBabysitter **sitter_p,
}
else if (grandchild_pid == 0)
{
- const char *error_str = NULL;
-
- if (!_dbus_reset_oom_score_adj (&error_str))
- {
- /* TODO: Strictly speaking, this is not async-signal-safe. */
- _dbus_warn ("%s: %s", error_str, strerror (errno));
- }
+ /* This might not succeed in a dbus-daemon that started as root
+ * and dropped privileges, so don't log an error on failure.
+ * (Also, we can't safely log errors here anyway, because logging
+ * is not async-signal safe). */
+ _dbus_reset_oom_score_adj (NULL);
/* Go back to ignoring SIGPIPE, since it's evil
*/