chiark / gitweb /
login: fix NULL-deref on wall_message
[elogind.git] / src / login / logind-dbus.c
index 0dfc96c18f0b76a264df45e3ca79cc2b6885d4b9..def9f3927474a212495bee9aaf41faca053b8f91 100644 (file)
@@ -1783,9 +1783,11 @@ static int update_schedule_file(Manager *m) {
         if (r < 0)
                 return log_error_errno(r, "Failed to create shutdown subdirectory: %m");
 
-        t = cescape(m->wall_message);
-        if (!t)
-                return log_oom();
+        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)
@@ -1801,7 +1803,7 @@ static int update_schedule_file(Manager *m) {
                 m->enable_wall_messages,
                 m->scheduled_shutdown_type);
 
-        if (!isempty(m->wall_message))
+        if (t)
                 fprintf(f, "WALL_MESSAGE=%s\n", t);
 
         r = fflush_and_check(f);
@@ -2275,7 +2277,7 @@ static int method_set_wall_message(
         int r;
         Manager *m = userdata;
         char *wall_message;
-        bool enable_wall_messages;
+        int enable_wall_messages;
 
         assert(message);
         assert(m);