chiark / gitweb /
shared: Drop 'name=' prefix from SYSTEMD_CGROUP_CONTROLLER define.
authorDimitri John Ledkov <dimitri.j.ledkov@intel.com>
Mon, 1 Jun 2015 11:46:52 +0000 (12:46 +0100)
committerSven Eden <yamakuzure@gmx.net>
Tue, 14 Mar 2017 09:01:41 +0000 (10:01 +0100)
In cgtop,mount-setup,nspawn the name= prefix is hard-coded in the
mount options, and the define is not used.

Everywhere else, we explicitly white-list allow 'name=' prefix to be
used with all controllers, and strip it out to 'normalise' the
controller name. That work is mostly inflicted on us due to 'name='
prefix in the define. Dropping this prefix makes everything more sane
overall.

src/shared/cgroup-util.c
src/shared/cgroup-util.h
src/shared/def.h

index a48b312018c26d420a1c1a10a0509fa1fd84cc8b..b286243c3629cb165ed3c8c353f50b5387e80f8e 100644 (file)
@@ -440,9 +440,7 @@ static const char *normalize_controller(const char *controller) {
 
         assert(controller);
 
-        if (streq(controller, SYSTEMD_CGROUP_CONTROLLER))
-                return "systemd";
-        else if (startswith(controller, "name="))
+        if (startswith(controller, "name="))
                 return controller + 5;
         else
                 return controller;
@@ -482,7 +480,7 @@ int cg_get_path(const char *controller, const char *path, const char *suffix, ch
 
         assert(fs);
 
-        if (controller && !cg_controller_is_valid(controller, true))
+        if (controller && !cg_controller_is_valid(controller))
                 return -EINVAL;
 
         if (_unlikely_(!good)) {
@@ -525,7 +523,7 @@ int cg_get_path_and_check(const char *controller, const char *path, const char *
 
         assert(fs);
 
-        if (!cg_controller_is_valid(controller, true))
+        if (!cg_controller_is_valid(controller))
                 return -EINVAL;
 
         /* Normalize the controller syntax */
@@ -741,7 +739,7 @@ int cg_pid_get_path(const char *controller, pid_t pid, char **path) {
         assert(pid >= 0);
 
         if (controller) {
-                if (!cg_controller_is_valid(controller, true))
+                if (!cg_controller_is_valid(controller))
                         return -EINVAL;
 
                 controller = normalize_controller(controller);
@@ -970,7 +968,7 @@ int cg_split_spec(const char *spec, char **controller, char **path) {
 
         e = strchr(spec, ':');
         if (!e) {
-                if (!cg_controller_is_valid(spec, true))
+                if (!cg_controller_is_valid(spec))
                         return -EINVAL;
 
                 if (controller) {
@@ -993,7 +991,7 @@ int cg_split_spec(const char *spec, char **controller, char **path) {
         t = strdup(normalize_controller(v));
         if (!t)
                 return -ENOMEM;
-        if (!cg_controller_is_valid(t, true)) {
+        if (!cg_controller_is_valid(t)) {
                 free(t);
                 return -EINVAL;
         }
@@ -1609,17 +1607,15 @@ char *cg_unescape(const char *p) {
         DIGITS LETTERS                          \
         "_"
 
-bool cg_controller_is_valid(const char *p, bool allow_named) {
+bool cg_controller_is_valid(const char *p) {
         const char *t, *s;
 
         if (!p)
                 return false;
 
-        if (allow_named) {
-                s = startswith(p, "name=");
-                if (s)
-                        p = s;
-        }
+        s = startswith(p, "name=");
+        if (s)
+                p = s;
 
         if (*p == 0 || *p == '_')
                 return false;
index 20900d0c532246022dab8bf48fdaccd25351825a..bc8caa5c1f76309cd16ad0e24664cf4e85e17034 100644 (file)
@@ -110,7 +110,7 @@ int cg_pid_get_user_slice(pid_t pid, char **slice);
 char *cg_escape(const char *p);
 char *cg_unescape(const char *p) _pure_;
 
-bool cg_controller_is_valid(const char *p, bool allow_named);
+bool cg_controller_is_valid(const char *p);
 
 typedef const char* (*cg_migrate_callback_t)(CGroupControllerMask mask, void *userdata);
 
index 7958f18c1ea7edbf4cbc50f4f89f17befdc2e46b..9665347a8b80a1d035b7430b0fa752bf8cdc3d7c 100644 (file)
@@ -78,5 +78,9 @@
                 .un.sun_path = "\0/org/freedesktop/plymouthd",  \
         }
 
+#ifndef TTY_GID
+#define TTY_GID 5
+#endif
+
 #define NOTIFY_FD_MAX 768
 #define NOTIFY_BUFFER_MAX PIPE_BUF