diff options
author | Lennart Poettering <lennart@poettering.net> | 2015-04-30 19:42:48 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2015-05-05 15:06:33 -0700 |
commit | e66e5b612a9e5921d79a6aedab4983e33dff8cb1 (patch) | |
tree | 87085e08c4c4b06772f001d871afdc643cf0d3d6 /src/shared/cgroup-util.c | |
parent | 32fea77178ff9aaa09a7b043965fce854fdf8874 (diff) |
cgroup-util: be more strict when processing slice unit names
Diffstat (limited to 'src/shared/cgroup-util.c')
-rw-r--r-- | src/shared/cgroup-util.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/shared/cgroup-util.c b/src/shared/cgroup-util.c index 1306cc197a..b5e4094f4e 100644 --- a/src/shared/cgroup-util.c +++ b/src/shared/cgroup-util.c @@ -1663,11 +1663,17 @@ int cg_slice_to_path(const char *unit, char **ret) { return -ENOMEM; dash = strchr(p, '-'); + + /* Don't allow initial dashes */ + if (dash == p) + return -EINVAL; + while (dash) { _cleanup_free_ char *escaped = NULL; char n[dash - p + sizeof(".slice")]; - if (isempty(dash + 1)) + /* Don't allow trailing or double dashes */ + if (dash[1] == 0 || dash[1] == '-') return -EINVAL; strcpy(stpncpy(n, p, dash - p), ".slice"); |