shared/install: refuse template files for non-templateable units
$ systemctl --root=/ enable templated@bar.mount Unit type mount cannot be templated. Failed to enable: Invalid argument.
This commit is contained in:
parent
6597fa6117
commit
133e5b362f
|
@ -1050,6 +1050,8 @@ static int unit_file_load(
|
|||
{}
|
||||
};
|
||||
|
||||
const char *name;
|
||||
UnitType type;
|
||||
_cleanup_fclose_ FILE *f = NULL;
|
||||
_cleanup_close_ int fd = -1;
|
||||
struct stat st;
|
||||
|
@ -1059,6 +1061,12 @@ static int unit_file_load(
|
|||
assert(info);
|
||||
assert(path);
|
||||
|
||||
name = basename(path);
|
||||
type = unit_name_to_type(name);
|
||||
if (unit_name_is_valid(name, UNIT_NAME_TEMPLATE|UNIT_NAME_INSTANCE) &&
|
||||
!unit_type_may_template(type))
|
||||
return log_error_errno(EINVAL, "Unit type %s cannot be templated.", unit_type_to_string(type));
|
||||
|
||||
if (!(flags & SEARCH_LOAD)) {
|
||||
r = lstat(path, &st);
|
||||
if (r < 0)
|
||||
|
|
Loading…
Reference in a new issue