summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2015-09-05 20:24:08 +0200
committerSven Eden <yamakuzure@gmx.net>2017-03-14 10:19:06 +0100
commit16ffa6bfe836f9b0fa5f1dd10d9cc774b9955a0b (patch)
treec9c89dd46bcc29b0d4284372fa04f8263a718989
parent23579b0e58cf49b71dceb3d317cf4c45c2c3a76d (diff)
logind: make scope of wall message handling smaller
-rw-r--r--src/login/logind-dbus.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c
index def9f3927..ac987ec57 100644
--- a/src/login/logind-dbus.c
+++ b/src/login/logind-dbus.c
@@ -1772,10 +1772,9 @@ static int nologin_timeout_handler(
}
static int update_schedule_file(Manager *m) {
-
- int r;
+ _cleanup_free_ char *temp_path = NULL;
_cleanup_fclose_ FILE *f = NULL;
- _cleanup_free_ char *t = NULL, *temp_path = NULL;
+ int r;
assert(m);
@@ -1783,12 +1782,6 @@ static int update_schedule_file(Manager *m) {
if (r < 0)
return log_error_errno(r, "Failed to create shutdown subdirectory: %m");
- if (!isempty(m->wall_message)) {
- t = cescape(m->wall_message);
- if (!t)
- return log_oom();
- }
-
r = fopen_temporary("/run/systemd/shutdown/scheduled", &f, &temp_path);
if (r < 0)
return log_error_errno(r, "Failed to save information about scheduled shutdowns: %m");
@@ -1803,8 +1796,17 @@ static int update_schedule_file(Manager *m) {
m->enable_wall_messages,
m->scheduled_shutdown_type);
- if (t)
+ if (!isempty(m->wall_message)) {
+ _cleanup_free_ char *t;
+
+ t = cescape(m->wall_message);
+ if (!t) {
+ r = -ENOMEM;
+ goto fail;
+ }
+
fprintf(f, "WALL_MESSAGE=%s\n", t);
+ }
r = fflush_and_check(f);
if (r < 0)