int manager_get_session_by_pidref(Manager *m, const PidRef *pid, Session **ret) {
_cleanup_free_ char *unit = NULL;
- Session *s;
+ Session *s = NULL;
int r;
assert(m);
if (!pidref_is_set(pid))
return -EINVAL;
- s = hashmap_get(m->sessions_by_leader, pid);
- if (s) {
- r = pidref_verify(pid);
- if (r < 0)
- return r;
- } else {
- r = cg_pidref_get_unit(pid, &unit);
- if (r >= 0)
- s = hashmap_get(m->session_units, unit);
- }
+ r = manager_get_session_by_leader(m, pid, ret);
+ if (r != 0)
+ return r;
+
+ r = cg_pidref_get_unit(pid, &unit);
+ if (r >= 0)
+ s = hashmap_get(m->session_units, unit);
if (ret)
*ret = s;