cgroup-util: fix cg_pid_get_user_unit() to actually query user units

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 015025cba2
This commit is contained in:
Luca Boccassi
2025-12-01 19:25:25 +00:00
committed by Yu Watanabe
parent 8c5917a03b
commit a3b6ad69ab
2 changed files with 4 additions and 1 deletions

View 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) {

View 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));