summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2019-11-01 11:21:05 +0100
committerYu Watanabe <watanabe.yu+github@gmail.com>2019-11-03 21:32:56 +0900
commit43c3fb4680c8a2f8f417a71d7fbedde2db30f0c8 (patch)
treef6f977ee869d9f15dea4f124c838b73a9a6cdb49
parentdf957acc6603a04e62dee7e911c65dc7dbcb6208 (diff)
downloadsystemd-43c3fb4680c8a2f8f417a71d7fbedde2db30f0c8.tar.gz
nspawn: mangle slice name
It's user-facing, parsed from the command line and we typically mangle in these cases, let's do so here too. (In particular as the identical switch for systemd-run already does it.)
-rw-r--r--src/nspawn/nspawn.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
index c9ff00544c..070a10fbeb 100644
--- a/src/nspawn/nspawn.c
+++ b/src/nspawn/nspawn.c
@@ -103,6 +103,7 @@
#include "terminal-util.h"
#include "tmpfile-util.h"
#include "umask-util.h"
+#include "unit-name.h"
#include "user-util.h"
#include "util.h"
@@ -891,13 +892,17 @@ static int parse_argv(int argc, char *argv[]) {
arg_settings_mask |= SETTING_MACHINE_ID;
break;
- case 'S':
- r = free_and_strdup(&arg_slice, optarg);
+ case 'S': {
+ _cleanup_free_ char *mangled = NULL;
+
+ r = unit_name_mangle_with_suffix(optarg, NULL, UNIT_NAME_MANGLE_WARN, ".slice", &mangled);
if (r < 0)
return log_oom();
+ free_and_replace(arg_slice, mangled);
arg_settings_mask |= SETTING_SLICE;
break;
+ }
case 'M':
if (isempty(optarg))