]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
login/logind-session-dbus: some follow-ups for 'user-incomplete' (#30226)
authorMike Yuan <me@yhndnzj.com>
Wed, 14 Feb 2024 16:43:14 +0000 (00:43 +0800)
committerMike Yuan <me@yhndnzj.com>
Thu, 15 Feb 2024 11:23:44 +0000 (19:23 +0800)
We don't usually say ", refusing" in bus error messages.
Also, make use of unref_and_replace_full.

src/login/logind-session-dbus.c

index bd8618ba5057bbcf7ee5d7fef3d32c90153ae73e..7c28b3717029adb4562fd098f7e10c97c60bb384 100644 (file)
@@ -426,16 +426,17 @@ static int method_set_class(sd_bus_message *message, void *userdata, sd_bus_erro
         /* For now, we'll allow only upgrades user-incomplete → user */
         if (class != SESSION_USER)
                 return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS,
-                                         "Class may only be set to 'user', refusing.");
+                                         "Class may only be set to 'user'");
+
         if (s->class == SESSION_USER) /* No change, shortcut */
                 return sd_bus_reply_method_return(message, NULL);
         if (s->class != SESSION_USER_INCOMPLETE)
                 return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS,
-                                         "Only sessions with class 'user-incomplete' may change class, refusing.");
+                                         "Only sessions with class 'user-incomplete' may change class");
 
         if (s->upgrade_message)
                 return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS,
-                                         "Set session class operation already in progress, refsuing.");
+                                         "Set session class operation already in progress");
 
         r = sd_bus_query_sender_creds(message, SD_BUS_CREDS_EUID, &creds);
         if (r < 0)
@@ -450,8 +451,7 @@ static int method_set_class(sd_bus_message *message, void *userdata, sd_bus_erro
 
         session_set_class(s, class);
 
-        sd_bus_message_unref(s->upgrade_message);
-        s->upgrade_message = sd_bus_message_ref(message);
+        unref_and_replace_full(s->upgrade_message, message, sd_bus_message_ref, sd_bus_message_unref);
 
         r = session_send_upgrade_reply(s, /* error= */ NULL);
         if (r < 0)