]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
cgroup-util: fix cg_pid_get_user_unit() to actually query user units
authorLuca Boccassi <luca.boccassi@gmail.com>
Mon, 1 Dec 2025 19:25:25 +0000 (19:25 +0000)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 2 Dec 2025 01:50:41 +0000 (10:50 +0900)
Refactor switched to the wrong implementation for this inline,
breaking querying for user units

Fixes https://github.com/systemd/systemd/issues/39949

Follow-up for 015025cba204de79c90e3cf7adf48505b556df4c

src/basic/cgroup-util.h
src/libsystemd/sd-login/test-login.c

index f494617ffac1403595e24503369d78ff042912e3..20346c7f15550c01db844a67ca8061bdd418f262 100644 (file)
@@ -216,7 +216,7 @@ static inline int cg_pidref_get_unit(const PidRef *pidref, char **ret_unit) {
 }
 int cg_pid_get_user_unit_full(pid_t pid, char **ret_unit, char **ret_subgroup);
 static inline int cg_pid_get_user_unit(pid_t pid, char **ret_unit) {
-        return cg_pid_get_unit_full(pid, ret_unit, NULL);
+        return cg_pid_get_user_unit_full(pid, ret_unit, NULL);
 }
 int cg_pidref_get_user_unit_full(const PidRef *pidref, char **ret_unit, char **ret_subgroup);
 static inline int cg_pidref_get_user_unit(const PidRef *pidref, char **ret_unit) {
index 7c2b68a5c78d07aa01f5fe435b81f94be037186b..2f15b029b003426d95116d038d8758e11cf51f9c 100644 (file)
@@ -59,6 +59,9 @@ TEST(login) {
         log_info("sd_pid_get_user_unit(0, …) → %s / \"%s\"", e(r), strnull(user_unit));
         assert_se(IN_SET(r, 0, -ENODATA));
 
+        /* Coverage for https://github.com/systemd/systemd/issues/39949 */
+        assert_se(!unit || !user_unit || !streq(unit, user_unit));
+
         r = sd_pid_get_slice(0, &slice);
         log_info("sd_pid_get_slice(0, …) → %s / \"%s\"", e(r), strnull(slice));
         assert_se(IN_SET(r, 0, -ENODATA));