X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flogin%2Flogind-dbus.c;h=ac987ec57aa28fc04ac7ed4c5a4c1112a49e3b94;hp=def9f3927474a212495bee9aaf41faca053b8f91;hb=16ffa6bfe836f9b0fa5f1dd10d9cc774b9955a0b;hpb=23579b0e58cf49b71dceb3d317cf4c45c2c3a76d 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)