chiark / gitweb /
Prep v238: Fix cg_path_decode_unit() to understand elogind session naming.
authorSven Eden <yamakuzure@gmx.net>
Mon, 11 Jun 2018 15:49:21 +0000 (17:49 +0200)
committerSven Eden <yamakuzure@gmx.net>
Mon, 11 Jun 2018 15:49:57 +0000 (17:49 +0200)
(cherry picked from commit d8949c3072a4b984d6fa964178a2d8d945ecbcb6)

src/basic/cgroup-util.c

index 6364a930ac918747c0a9120e269effe514f3f88e..8322f40771c307de2c788f611ea68c127a9fbd71 100644 (file)
@@ -1476,15 +1476,21 @@ int cg_path_decode_unit(const char *cgroup, char **unit) {
         assert(cgroup);
         assert(unit);
 
+#if 0 /// elogind has a different naming: <controller>:/<session id>. So prefix is always len < 3
         n = strcspn(cgroup, "/");
         if (n < 3)
                 return -ENXIO;
+#else
+        n = strspn(cgroup, "/") + 1;
+#endif // 0
 
         c = strndupa(cgroup, n);
         c = cg_unescape(c);
 
+#if 0 /// elogind session ids are never valid unit names.
         if (!unit_name_is_valid(c, UNIT_NAME_PLAIN|UNIT_NAME_INSTANCE))
                 return -ENXIO;
+#endif // 0
 
         s = strdup(c);
         if (!s)